Linux用户管理及sudo提权

目录

 

一、用户及组管理

1.管理用户帐号

1.1 添加用户(useradd)

1.2 检查用户属性(id)

1.3 修改用户属性(usermod)

1.3 设置登陆密码(passwd)

1.4 设置帐号有效期(chage)

1.5 锁定用户帐号(passwd)

1.6 删除用户(userdel)

2. 管理用户组

2.1 添加用户组(groupadd)

2.2 管理组成员(gpasswd)

2.3 修改组属性(groupmod)

2.4 删除组(groupdel)

二、用户切换与sudo提权

1. su切换用户身份

2. sudo提权的基本用法

3. 配置sudo提权

4. sudo别名的设置

5. 配置sudo日志跟踪


一、用户及组管理

1.管理用户帐号

1.1 添加用户(useradd)

  • useradd [选项] 用户名
  • 常用选项:
  1. -u 用户uid
  2. -d 用户家目录路径
  3. -s 登陆的shell类型
  4. -g 基本组
  5. -G 附加组
  6. -e 用户账户将被禁用的日期,日期以 YYYY-MM-DD 格式指定
  7. -M 不创建家目录

1.2 检查用户属性(id)

  • id 用户名

1.3 修改用户属性(usermod)

  • usermod [选项] 用户名
  • 常用选项:
  1. -u 用户uid
  2. -d 用户家目录路径
  3. -s 登陆的shell类型
  4. -g 基本组
  5. -G 附加组

1.3 设置登陆密码(passwd)

  • 方式一(交互式):passwd [用户名]
  • 方式二(非交互):echo '密码' | passwd --stdin 用户名

1.4 设置帐号有效期(chage)

  1. chage -d 0 用户名    #下次登陆时强制修改密码
  2. chage -l 用户名    #查看用户帐号有效期   
  3. chage -E YYYY-MM-DD 用户名    #指定帐号失效日期
  4. chage -E -1 用户名    #取消帐号失效日期

1.5 锁定用户帐号(passwd)

  1. passwd -l 用户名    #锁定用户无法登陆
  2. passwd -u 用户名    #解锁用户帐号
  3. passwd -S 用户名    #查看锁定状态

1.6 删除用户(userdel)

  1. userdel [-r] 用户名    #加上 -r 选项时连同家目录一起删除

2. 管理用户组

2.1 添加用户组(groupadd)

  1. groupadd [-g 组ID] 组名

2.2 管理组成员(gpasswd)

  1. gpasswd -a 用户名 组名    #添加用户至用户组
  2. gpasswd -d 用户名 组名    #从组中删除用户

2.3 修改组属性(groupmod)

  • groupmod [-g 组ID] 组名   #修改组ID
  • groupmod [-n 新组名] 组名    #修改组名

2.4 删除组(groupdel)

  • groupdel 组名

二、用户切换与sudo提权

1. su切换用户身份

  • su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码
  1. su - [用户名]    #普通用户切换账户身份时需要输入密码,root使用su命令切换任何身份都不需要密码
  2. su - [用户名] -c '命令'    #以指定用户执行命令

2. sudo提权的基本用法

sudo(Super or another Do) 允许一个用户以超级用户或者其它用户的角色运行一个已授权的命令。这样不仅减少了root用户的登录和管理时间,同样也提高了安全性。

  • 命令格式:
  1. sudo -l    #查看自己的授权信息
  2. sudo [特权命令]    #执行特权命令
  3. sudo [-u 用户名] 特权命令    #指定用户执行特权命令

3. 配置sudo提权

  • 方法一(推荐):visudo
  • 方法二:vi /etc/sudoers
  • 授权记录格式:

用户或组    主机列表  = [切换的身份]  [是否需要密码验证]:命令列表,[命令选项]

  1. 示例一:%wheel  ALL=(ALL)   NOPASSWD:ALL    #wheel组的用户无需密码验证可在任何地方执行任何命令
  2. 示例二:lisi  localhost = /sbin/*, !/sbin/ifconfig eth0    #仅允许lisi本机执行sbin下所有命令,但是不允许用ifconfig对eth0操作
  3. 示例三:useradm ALL=(ALL)  /usr/bin/passwd,!/usr/bin/passwd root,/usr/sbin/user*,!/usr/sbin/user* * root    #允许用户useradm通过sudo方式添加/删除/修改除root以外的用户账号

4. sudo别名的设置

  • 设置sudo别名可以提高可重用性、易读性、简化配置并且使记录更有条理性
  • 别名的名称必须全部大写
  1. User_Alias  SYSAD = vayne,charon,%operator    # 用户别名,别名成员可以是用户,用户组(前面要加%号)
  2. Host_Alias  HOSTIP = 10.10.16.0/24     #可操作的主机别名
  3. Runas_Alias  OP = root    #可切换的身份
  4. Cmnd_Alias  USERMGT = /usr/bin/passwd,!/usr/bin/passwd root,/usr/sbin/user*,!/usr/sbin/user* * root    #可使用的命令
  • 示例:SYSAD HOSTIP = (OP) USERMGT

5. 配置sudo日志跟踪

  • 为sudo机制启用日志记录,以便跟踪sudo执行操作,修改/etc/sudoers配置,在最下方添加日志设置:
  • Defaults logfile="/var/log/sudo"

你可能感兴趣的:(System)