Linux用户及权限相关知识

linux用户及相关知识

一、相关名词解释

每一个用户名都对应一个用户IDUID,主机通过用户名解析成UID进行用户识别。

每一个用户组名都对应一个组IDGID,主机通过用户组名解析成GID进行用户识别。

1、名称解析:将用户名和UID进行转换。

2、用户认证:验证该用户是否具有该权限登陆该主机。

3、用户授权:该用户是否有权限访问该文件。

4、审计:记录该用户在当前系统的行为。

5、认证机制 linux默认的认证机制 shadow   影子口令

[root@localhost/]# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

[root@localhost/]# cat /etc/shadow

root:$6$U5wkKZWVF5xnX6Vz$U9Jb6/x.q25O0iJdWUwPJlR6Gu5g.m8iS3v.LpPRKEbBZvTYMga7Jb/J6jom32mTSRFyvSHm961pdFZf3ZePy0:16526:0:99999:7:::

/etc/passwd下查看root用户的登陆密码,显示为x,通过查看/etc/shadow,显示root的加密密码。

6、安全上下文  :进程是继承了,发起该进程的用户的权限。

7、组  group  :存放用户及权限的容器。

二、用户类别

1 管理员: root   UID为0

2、普通用户:

 系统用户 :它们是为了在后台运行某个服务进程而特别建立 ,这些用户都不能登录系统  UID1-499

 可交互式登录的用户:UID 500-65535

三、组的类别

第一种分类方法:

1、管理员组 root GID为0

2、普通组:

系统组 GID1-499

用户组:GID500-65535

第二种分类方法:

1、用户的私有组:组名和用户名一致,且通常只包含一个用户

2、非私有组:  

用户的基本组 :用户执行操作时所属的组。   

用户的附加组  :除基本组之外的组。

[root@localhost/]# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

jiuren:x:500:500::/home/jiuren:/bin/bash

用户名:密码占位符:UIDGID:用户的注释:用户的家目录 :用户所使用的默认shell类型

[root@localhost/]# cat etc/group

root:x:0:

sys:x:3:bin,adm

组名:密码占位符:GID:用户名....

四、用户和组管理相关的命令

1useradd添加用户(只有管理员有权限使用)

使用格式:useradd   [选项]   用户名

-u UID

                    -c ‘描述信息’  

                             -d   创建用户家目录,此目录先不应该存在,如果存在创建用户时会报警

                             -s   “默认shell类型”   /etc/shells

                           -g   组名或GID     指定用户的基本组

                           -G   组名或GIU     指定用户的附加组

                           -r   指定创建的用户为系统用户

注:useradd后不跟选项时,系统默认的存放路径是/etc/default/useradd

[root@localhost /]# useradd -u 502 centos添加UID502centos用户

[root@localhost/]# tail -1 /etc/passwd

centos:x:502:502::/home/centos:/bin/bash

[root@localhost home]# useradd  -c ‘user is openstack‘ user1添加描述信息为user is openstackuser1用户

[root@localhost/]# tail -1 /etc/passwd

user1:x:503:503:useris openstack:/home/user1:/bin/bash

 [root@localhosthome]# ls /home由此可见系统在添加用户是useradd后不加-d也会默认创建其家目录。

centos  lost+found user1

[root@localhost home]# cat /etc/shells查看系统的shell类型

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash

/bin/tcsh

/bin/csh

[root@localhost home]# useradd -s /bin/csh user2指定user2shell类型为/bin/csh

[root@localhosthome]# tail -1 /etc/passwd

user2:x:504:504::/home/user2:/bin/csh

2groupadd [选项]   组名

                        -g     GID     指定当前创建的组的ID

                         -r     创建系统组

3id   [选项]   用户名

       -u    仅显示UID

       -g    仅显示GID

       -n    显示用户名,需要和其他选项结合使用

4userdel [选项]    用户名

                     -r      删除用户时同时删除用户家目录

[root@localhosthome]# groupadd -g 600 g1创建GID600g1

[root@localhosthome]# useradd -g 600 y1创建GID600y1用户

[root@localhosthome]# id -g  y1显示用户y1GID

600

[root@localhost/]# userdel user2不加选项删除user2后未能删除其家目录

[root@localhost/]# ls home

centos  lost+found user1  user2  y1  yh

[root@localhost/]# userdel -r centos-r选项删除centos能删除其家目录

[root@localhost/]# ls home

lost+found  user1 user2  y1  yh

练习1、创建用户gentoo  UID4001   基本组为 gentoo 附加组为distroGID5000)和peguingid 5001

groupadd -g  5000 distro

groupadd -g5001  peguin

useradd -u4001  -g gentoo -G distro,peguin  gentoo

练习创建用户fedora 其描述为“Fedora Core  默认shell  /bin/tcsh

useradd –c “FedoraCore” –s  /bin/tcsh fedora

5usermod  [选项]   用户名 

           -u UID           修改用户的UID

           -c "描述信息修改用户的描述信息

           -d 家目录  通常用于-m选项一起使用,以实现移动用户的家目录  (目标家目录一般不存在)

           -s shell   修改用户的shell类型

           -g 组名或GID  修改基本用户的组名或GID

           -G 组名或GID   -a追加的形式   修改用户的附加组名或GID 

           -l 新的用户名        修改用户名

           -L 用户名  锁定

           -U 用户名  解锁

[root@localhost/]# tail -2 /etc/passwd显示文件的最后两行

yh:x:505:503::/home/yh:/bin/bash

y1:x:506:600::/home/y1:/bin/bash

[root@localhost/]# usermod -u 504 yh修改yhUID504

[root@localhost/]# tail -2 /etc/passwd

yh:x:504:503::/home/yh:/bin/bash

y1:x:506:600::/home/y1:/bin/bash

[root@localhost/]# usermod -c ‘aa‘ yh修改yh的描述信息为aa

[root@localhost/]# tail -2 /etc/passwd

yh:x:504:503:aa:/home/yh:/bin/bash

y1:x:506:600::/home/y1:/bin/bash

[root@localhost/]# usermod -s /bin/csh yh修改yhshell类型为bin/csh

[root@localhost/]# tail -2 /etc/passwd

yh:x:504:503:aa:/home/yh:/bin/csh

y1:x:506:600::/home/y1:/bin/bash

[root@localhost/]# usermod -g 600 yh修改yhGID600

[root@localhost/]# tail -2 /etc/passwd

yh:x:504:600:aa:/home/yh:/bin/csh

y1:x:506:600::/home/y1:/bin/bash

[root@localhost/]# usermod -l yy yhyh修改为yy

[root@localhost/]# tail -2 /etc/passwd

y1:x:506:600::/home/y1:/bin/bash

yy:x:504:600:aa:/home/yh:/bin/cs

[root@localhost~]# usermod -L jiuren

[root@localhost~]# cat /etc/shadow查看jiuren用户密码的相关信息

jiuren:!$6$FgPpG.K6$2zQFKoGNlAs9V4vwHqBJvk5uuilxTFueQUELE8D/TL95EaOEkznqkUJU889MNyWsqt5chcd19ZXmqWW3261sX1:16537:0:99999:7:::放一个感叹号在jiuren的加密密码前,禁用密码.

[root@localhost~]# usermod -U jiuren

[root@localhost~]# cat /etc/shadow

jiuren:$6$FgPpG.K6$2zQFKoGNlAs9V4vwHqBJvk5uuilxTFueQUELE8D/TL95EaOEkznqkUJU889MNyWsqt5chcd19ZXmqWW3261sX1:16537:0:99999:7:::将加密密码前的叹号取消,恢复帐号登录

6groupmod  [选项组名

             -g    GIU  修改的是组的ID

             -n    新的组名   修改组名

[root@localhost/]# tail -2 /etc/group

user1:x:503:

g1:x:600:

[root@localhost/]# groupmod -g 504 user1修改user1组的GID504

[root@localhost/]# tail -2 /etc/group

user1:x:504:

g1:x:600:

[root@localhost/]# groupmod -n us user1  user1组名修改为us

[root@localhost/]# tail -2 /etc/group

g1:x:600:

us:x:504:

7chsh -l                        列出用户可以使用的安全shell

[root@localhost/]# chsh -l 

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash

/bin/tcsh

/bin/csh

chsh -s shell类型 用户名     修改用户的默认shell

root@localhost /]# chsh -s /bin/sh yy

Changing shell for yy.

Shell changed.

[root@localhost /]# tail -2 /etc/passwd

y1:x:506:600::/home/y1:/bin/bash

yy:x:504:600:aa:/home/yh:/bin/sh

练习1、修改gentoo 用户的家目录为/tmp/gentoo

usermod -d  /tmp/gentoo -m gentoo

练习2、为gentoo新增附加组为netadmin

groupadd netadmin

usermod -G netadmin -a gentoo

五、用户密码相关知识

1/etc/shadow  存储用户认证密码

/etc/shadow  文件格式

jiuren:$6$wB12Guwr$guUBe4vOAUtFvL0B0DXipHixzPAszykTvT9RlAY4hSlUMwzvGSLgfYycQgJ0tBpMRFFM2nwHx617SjnGqLkl4/:16526:0:99999:7:::

用户名加密后的密码上次修改密码的时间密码最短使用期限密码最长使用期限密码警告区间:密码非活区间:账号过期:预留

上次修改密码的时间:是指上次修改密码时到现在经历的天数。

密码最短使用期限:指的是两次修改口令之间所需的最小天数。

密码最长使用期限    :指的是口令保持有效的最大天数。

密码警告区间:指的是从系统开始警告用户到用户密码正式失效之间的天数。

密码非活区间:指的是用户没有登录活动但账号仍能保持有效的最大天数。

$6$wB12Guwr$guUBe4vOAUtFvL0B0DXipHixzPAszykTvT9RlAY4hSlUMwzvGSLgfYycQgJ0tBpMRFFM2nwHx617SjnGqLkl4/

$:表示间隔

6:指定密码加密方式 sha512   

wB12Guwr  :加密杂质

guUBe4vOAUtFvL0B0DXipHixzPAszykTvT9RlAY4hSlUMwzvGSLgfYycQgJ0tBpMRFFM2nwHx617SjnGqLkl4/:加密生成的密码

2、修改用户密码 passwd

管理员:

           passwd              修改管理员root用户自身密码

           passwd  用户名  修改其他普通用户的密码

普通用户:

         passwd      只能修改普通用户自身密码

3、切换用户 su switch  user

登录式切换   su  - 用户名  (会读取用户的所有配置)

非登录切换   su  用户名  (不会读取目标用户环境配置文件

以上用户命令总结:  useradd  usermod userdel  id  groupadd groupmod groupdel passwd  su

六:权限管理

文件权限:针对三类对象(属主、属组、其他组)进行定义的

文件的详细信息:

    -rw-r--r--. 1 root root 27632 Apr  7 03:51install.log

其中-rw-r--r--  第一个“-”指的是文件类型为普通文件。其后的rw-r--r—即定义了文件的权限,分别是属主、属组、其他组的权限。

    rw-     r--       r--    

    属主     属组     其他组(其他用户)

权限类型:r(读)  w(写)  x  eXcutable 执行)

    文件:

         r:可以查看文件的内容

         w:可以修改文件内容

         x:可以吧文件向内核提起申请运行为一个进程

    目录

         r:是否可以使用ls命令  除了-l 选项之外

         w:是否可以在目录中进行添加、删除操作

         x:可使用cd命令进入目录,ls-l选项

系统通过将其转换成二进制来识别,所以可理解为

r-->4
   w-->2
   x-->1

-0

  rw-rw-r-- 664

rwx------ 600

 1 修改文件的权限:

  chmod [选项]   权限模式  文件名

                -R  递归修改文件(包含文件内的所有文件)的权限

操作对像:

 u 文件属主权限
   g 同组用户权限
   o 其它用户权限
   a 所有用户(包括以上三种)
权限设定:

   + 增加权限
   - 取消权限
   =  唯一设定权限

只修改指定对象的权限

chmod  权限模型  文件名

           u=-x, -r,  -w

           g…

           o=+x+r+w

           a…

注:以上修改文件的权限都是以覆盖的形式。

[root@localhosthome]# ll aa(aa文件当前权限)

-rw-r--r-- 1root root 0 Apr 12 12:22 aa

[root@localhosthome]# chmod u=+x aa(修改aa的属主具有执行权限)

[root@localhosthome]# ll aa

---xr--r-- 1root root 0 Apr 12 12:22 aa(属主原具有读写权限,执行上条命令后aa只具有执行权限)

[root@localhosthome]# chmod u=+rwx aa

[root@localhosthome]# ll aa

-rwxr--r-- 1root root 0 Apr 12 12:22 aa

oga与其用法相同故不多做例举。

或用二进制表示文件权限

 [root@localhost home]# chmod 777 aa   (aa文件属主属组其他用户具有所有权限)

[root@localhosthome]# ll aa

-rwxrwxrwx 1root root 0 Apr 12 12:22 aa

2、修改属主  属组

 chown  [选项属主:属组   文件名

         -R递归修改文件(包含文件内的所有文件)的属主属组

chown     属主:属组   文件名

chown     :属组       文件名

[root@localhosthome]# chown jiuren:jiuren aa(将aa的属主属组修改为jiuren

[root@localhosthome]# ll aa

-rwxrwxrwx 1jiuren jiuren 0 Apr 12 12:22 aa

[root@localhosthome]# chown root:jiuren aa(将aa的属主改为root

[root@localhosthome]# ll aa

-rwxrwxrwx 1root jiuren 0 Apr 12 12:22 aa

[root@localhosthome]# chown :root aa(将aa的属组改为root

[root@localhosthome]# ll aa

-rwxrwxrwx 1root root 0 Apr 12 12:22 aa

注:chown  属主:  文件名(该命令不成立,输入属主后属组会默认与属主一致)

[root@localhost home]# ll aa

-rwxrwxrwx 1 root root 0 Apr 12 12:22 aa

[root@localhost home]# chown jiuren: aa

[root@localhost home]# ll aa

-rwxrwxrwx 1 jiuren jiuren 0 Apr 12 12:22 aa




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。