用户账号有三类:超级用户、普通用户、程序用户
组账号有:基本组和附加组
用户账户的身份标记是UID:root的UID是0、程序用户是1-499之间、普通500-60000

一:用户账号文件

1.passwd文件中配置行格式
root : x : 0 : 0 : root : /root : /bin/bash
passwd文件的每一行内容中,包含七个“:”分隔的配置字段

  • 第一字段:用户账号的名称
  • 第二字段:经过加密的用户密码,或密码占位符“x”
  • 第三字段:用户账号的UID号
  • 第四字段:所属基本组账号的GID号
  • 第五字段:用户全名
  • 第六字段:宿主目录
  • 第七字段:登陆shell等信息,用户完成登陆后使用的shell

2.shadow文件中的配置行格式
shadow文件又称为“影子文件”,默认只有root能读取文件内容,而不允许编辑
tail -2 /etc/shadow
root : $1kdjfaskdfkadjfaksdjf : 14374 : 0 : 99999 : 7 : : :
bin : * : 14374 : 0 : 99999 : 7 : : :      使用了九个冒号、从左到右分别

  • 一:用户账号名称
  • 二:使用MD5加密的密码字串信息,当为“*”和“!!”时不能登录到系统,若该字段为空、不要密码也能登录
  • 三:上次修改密码的时间
  • 四:密码的最短有效天数,默认为0
  • 五:密码最长有效天数,默认99999
  • 六:提前多少天警告用户口令将过期,默认7天
  • 七:在密码过期多少天内禁用此用户
  • 八:账号失效时间,默认为空,即永久可用
  • 九:保留字段

二:管理用户的命令

①useradd——添加用户账号  useradd  [选项]  用户名

  • -u:指定用户的UID号,要求未被使用
  • -d:指定用户的宿主目录位置
  • -e:指定用户的账户失效时间
  • -g:指定用户的基本组名(或使用GID号)
  • -G:指定用户的附加组名(或使用GID号)
  • -M:不建立使用者目录,即使/etc/login.defs系统档设定要建立使用者目录
  • -s:指定用户的登陆shell

例:创建一个辅助管理员账号admin,将其基本组指定为wheel、附加组指定为root,宿主目录指定为"/admin"
[root@localhost ~] # useradd -d /admin -g wheel -G root admin

②passwd——为用户账号设置密码

-d:清空指定用户的密码,仅使用用户名即可登陆系统
-l:锁定用户账户
-S:查看用户账户的状态(是否被锁定)
-u:解锁用户账户

③usermod——修改用户账号属性

  • -u:修改用户的UID号
  • -d:修改用户的宿主目录位置
  • -e:修改用户的账户失效时间
  • -g:修改用户的基本组名(或使用GID号)
  • -G:修改用户的附加组名(或使用GID号)
  • -M:不为用户建立并初始化宿主目录
  • -s:指定用户的登陆shell
  • -l:更改用户账号的登陆名称(login name)
  • -L:解锁用户账户
  • -U:解锁用户账户

例:将用户账号的登陆名称admin更改为wycsy,下次登陆时生效
usermod -l wycsy admin
grep "admin" /etc/passwd

④userdel——删除用户账号

-r:可以将该用户的宿主目录一并删除

三:组账号的管理

①id——查看有哪些组账号、id mysql查看用户mysql的身份信息

②grep "^root" /etc/group查看组账号root中包含有哪些用户账号成员

③groupadd——添加组账号、需要指定GID号时、可以使用"-g"选项

④gpasswd——添加、删除组成员

  • -a:添加
  • -d:删除
  • -M:同时添加多个用户

例:将用户wy、csy同时加入到admin组中
gpasswd -M wy,csy admin
grep "^admin" /etc/group

⑤groupdel——删除组账号

 四:用户和组账号查询

㈠group——查询某个用户账户所属的组
㈡finger——查询用户账号的详细信息
㈢user、w、who——查询当前登录到主机的用户信息

  • finger:列出用户登录名、终端、登录时间及个人信息等
  • w:列出用户名、终端、执行的命令等各种统计的信息
  • who:列出用户名、终端、登录时间、来源地点等信息
  • users:仅列出用户名信息

管理文件/目录的权限和归属

一:查看文件、目录的权限和归属

ls  -ld /etc /etc/passwd
查询分为八个部分、3和4分别表示文件的属主和属组
1部分drwxr-xr-x这个样式分四小部分、表示文件(目录)的权限

第1个字符:表示该文件的类型,可以使d(目录)、b(块设备文件)、c(字符设备文件)、-(普通文件)、l(链接文件)等
第2-4个字符:表示该文件的属主用户对文件的访问权限
第5-7个字符:表示该文件的属组内各成员对该文件的访问权限
第8-10个字符:表示其他任何用户对该文件的访问权限

二:设置文件/目录的权限

chmod [ugoa…] [+-=] [rwx] 文件或目录…
或chmod nnn 文件或目录…

  • ugoa:表示该权限设置所针对的用户类别、u代表文件属主,g代表文件属组内的用户,o其他任何用户,a代表所有用户
  • +-=:表示设置权限的操作动作,+增加相应权限,-减少相应权限,=设置对应的权限
  • rwx:权限的字符组合形式,也可拆分使用

三:设置文件/目录的归属

chown 属主 [:[属主]] 文件或目录…
单独设置属主信息,要使用“:组名”
   
例:将mymkdir文件的属组更改为wheel组(调整后wheel组内的其他用户将拥有“r-x”权限)
chown :wheel mymkdir
ls -l mymkdir
例:将/var/ftp/pub目录中的所有子目录、文件的属主改为ftp用户
chown -R ftp /var/ftp/pub

四:使用附加权限(可用的附加权限:SET位权限(SUID、SGID)、粘滞位(sticky bit))

SET位权限、可以使用“u+s”、“g+s”分别设置SUID、SGID(“u-s”、“g-s”可以去除SUID、SGID)
通过passwd命令可以示范:普通用户默认是不能修改/etc/passwd的、正是因为有了SET位权限才能修改自己的密码、让其拥有管理员的权限、但是这种权限还是仅限于修改自己的密码

粘滞位权限、作用是为目录设置特殊的附加权限,当目录被设置了粘滞位后、即便用户对该目录有写入权限、也不能删除该目录中其他用户的文件数据(只能针对自己的目录操作)。/tmp、/var/tmp两个是比较典型的目录