Linux学习笔记——用户和组管理
Part7–用户和组管理
1.用户和组账号概述:
用户账号:
(1)超级用户:root非执行管理任务时不建议使用root用户登录系统。
(2)普通用户:一般只在用户自己的宿主目录中有完全权限。
(3)程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如bin、daemon、ftp、mail等。
组账号:
(1)基本组(私有组)。
(2)附加组(公共组)。
UID和GID:
(1)UID:用户标识号。
(2)GID:组标识号。
(3)1~499的UID、GID默认保留给程序用户使用,普通用户/组使用的UID、GID号在500~60000之间。
2.用户账号文件passwd与shadow:
【passwd文件】:
文件位置为/etc/passwd,任何用户都有权限读取。文件中每一行对应一个用户的账号记录。
(1)字段1:用户账号的名称。
(2)字段2:用户密码字串或者密码的占位符“x”。
(3)字段3:用户账号的UID号。
(4)字段4:所属基本组账号的GID号。
(5)字段5:用户全名。
(6)字段6:宿主目录。
(7)字段7:登录Shell信息。
【shadow文件】:
文件位置为/etc/shadow,只有root才有权限读取,可以强制修改,文件中每一行对应一个用户的密码记录。
(1)字段1:用户账号的名称。
(2)字段2:通常为加密的密码字串信息。若此字段为“*”,是虚拟用户,不能登录; 此字段为“!!”,用户没设密码,不能登录; 此字段为空,无需密码即可登录。
(3)字段3:上次修改密码的时间。
(4)字段4:密码的最短有效天数,默认值为0。
(5)字段5:密码的最长有效天数,默认值为99999。
(6)字段6:提前多少天警告用户口令即将过期,默认值为7。
(7)字段7:在密码过期后多少天禁用此用户。
(8)字段7:账号失效时间,默认值为空。
(9)字段7:保留字段(未使用)。
3.useradd:
useradd:添加用户账号。
useradd -u:-u表示指定UID标记号。
useradd -d:-d表示指定宿主目录,缺省为/home/用户名。
useradd -e:-e表示指定账号失效时间。
useradd -g:-g表示指定用户的基本组名。
useradd -G:-G表示指定用户的附加组名。
useradd -M:-M表示不为用户建立并初始化宿主目录。
useradd -s:-s表示指定用户的登录Shell。
4.passwd:
passwd 用户名:设置 / 更改用户口令。
passwd -d 用户名:-d表示清空用户的密码,使之无需密码即可登录。
passwd -l 用户名:-l表示锁定用户账号。
passwd -S 用户名:-S表示查看用户账号的状态(是否被锁定)。
passwd -u 用户名:解锁用户账号。
(注:上述操作只有root才有权限)
5.usermod:
usermod:用于修改用户账号的属性。
usermod -l 用户名:-l表示更改用户账号的登录名称。
usermod -L 用户名:-L表示锁定用户账号。
usermod -U 用户名:-U表示解锁用户账号。
6.userdel:
userdel 用户名:用于删除用户账号。
userdel -r 用户名:-r表示连用户的宿主目录一并删除。
7.chage:
chage:改变用户密码期限。
chage -M 用户名:密码的最长有效天数。
chage -m 用户名:密码的最短有效天数。
chage -W 用户名:密码的警告天数。
chage -I 用户名:密码的有效天数。
chage -E 用户名:密码的过期时间。
8.组账号文件group与gshadow:
与用户账号文件相类似,都位于/etc目录下。前者保存组账号的基本信息,后者保存组账号的密码信息。
9.groupadd:
groupadd:添加组账号。
groupadd -g GID 组账号名:
10.groupdel:
groupdel 用户名:删除组账号。
11.gpasswd:
gpasswd:设置组账号密码(极少用),添加、删除组成员。
gpasswd -a 用户名 组名:向组内添加一个用户。
gpasswd -d 用户名 组名:从组内删除一个用户。
gpasswd -M 用户名列表 组名:定义组成员列表,以逗号分隔
12.用户组账号查询:
id 用户名:查询用户身份标识。
groups 用户名:查询用户所属的组。
finger 用户名:查询用户账号的详细信息。(显示无此命令)
users、w、who:查询已登录到主机的用户信息。
13.图形化的用户和组管理:
略
14.文件目录的权限和归属:
访问权限:
(1)读取(r):运行查看文件内容、显示目录列表。
(2)写入(w):运行修改文件内容,允许在目录中新建、移动、删除文件或子目录。
(3)可执行(x):允许允许程序、切换目录。
归属(所有权):
(1)属主:拥有该文件或目录的用户账号。
(2)属组:拥有该文件或目录的组账号。
15.查看文件/目录的权限和归属:
ls -l 文件名:前四个字段分别为文件类型、访问权限、属主、属组。
附上ppt
16.chmod:
chmod:设置文件 / 目录的权限。
chmod [ugoa] [+-=] [rwx] 文件或目录:(注:u、g、o、a分别表示属主、属组、其他用户、所有用户,+、-、=分别表示增加、去除、设置权限)。
chmod nnn 文件或目录:(注:nnn表示3位八进制数)。
常用-R选项,表示递归修改指定目录下的所有文件、子目录的权限。
17.chown:
chown:设置文件 / 目录的归属。
chown 属主 文件或目录。
chown :属组 文件或目录。
chown 属主:属组 文件或目录。
18.使用附加权限:
SET位权限:
【主要用途】
(1)为可执行(有x权限的)文件设置,权限字符位“s“,可用chmod设置,例如chmod ug+s 可执行文件名,chmod 4 / 2nnn(SUID对应4,SGID对应2)。
(2)其他用户执行该文件时,将拥有属主或属组用户的权限。
【SET位权限类型】
(1)SUID:表示对属主用户增加SET位权限。
(2)SGID:表示对属组内用户增加SET位权限。
(3)如果SGID是设定在目录上面,则在该目录内所创建的文件或目录的所属组将会自动称为此目录的所属组。
【例子】普通用户以更改自己的密码时,是以root用户的身份,间接更新了shadow文件中自己的密码
粘滞位权限(Sticky):
【主要用途】:
(1)为公共目录(例如,权限为777的)设置,权限字符为”t“,可用chmod设置,例如chmod o+t 目录名,chmod 1nnn(s对应1)。
(2)用户不能删除该目录中其他用户的文件。
【例子】
19.文件ACL权限:
ACL是 Access Control List 的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的细部权限设定。
ACL可以针对单一使用者,单一文件或目录来进行r,w,x的权限规范,对于需要特殊权限的使用状况非常有帮助。
ACL 主要可以针对以下方面来控制权限:
(1)使用者 (user):可以针对使用者来设定权限;
(2)组群 (group):针对用户组为对象来设定其权限;
(3)预设属性 (mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的预设权限。