用户和组

用户

查看当前用户是谁

  1. whoami

用户新建

  1. adduser alvin
  2. passwd alvin

用户删除

  1. userdel -r username
  2. -r 表示同时删除目录,不添加则表示仅仅删除用户

修改用户名

  1. sudo usermod -l oldName newName

组操作

  1. 增加:groupadd groupname
  2. 删除:groupdel groupName
  3. 修改名称:groupmod -n oldName newName

组管理用户

查看用户属于哪个组

image.png

添加用户到组

image.png

删除用户到组

image.png

查看组内有什么用户

image.png

/etc/passwd group

  1. 用户信息
  2. /etc/passwd
  3. test2:x:1002:1004:,,,:/home/test2:/bin/bash
  4. 用户名:密码:用户Id:组ID:账户描述信息:home目录:登录shell
  5. 组信息:
  6. /etc/group
  7. alvin:x:1000:
  8. docker:x:1001:alvin
  9. 组名:密码:组Id:组内用户

添加sudo权限和免sudo密码

  • centos
  1. visudo
  2. alvin ALL=(ALL) ALL ## 加入sudo组
  3. alvin ALL=(ALL) NOPASSWD: ALL ## 不用输入密码
  • ubuntu

用户权限 - 图5

修改文件归属

  1. 使用chown命令可以修改文件或目录所属的用户:
  2. 命令:chown 用户 目录或文件名
  3. 例如:chown qq /home/qq (把home目录下的qq目录的拥有者改为qq用户)
  4. 使用chgrp命令可以修改文件或目录所属的组:
  5. 命令:chgrp 组 目录或文件名
  6. 例如:chgrp qq /home/qq (把home目录下的qq目录的所属组改为qq组)

示例:

image.png

实用

创建开发人员账户

1、先创建一个用户组、共享文件夹,只操作一次

  1. # 切换root
  2. su -l
  3. # 创建组
  4. groupadd dev
  5. # 修改所有组
  6. # 写权限
  7. # 授权sgid属性,后续创建的文件都属于这个组
  8. # o+t 只能删除自己的文件(这个酌情使用)
  9. shareDir=/data
  10. mkdir ${shareDir}
  11. chgrp dev ${shareDir}
  12. chmod g+w ${shareDir}
  13. chmod g+s ${shareDir}
  14. chmod o+t ${shareDir}

2、创建普通用户并加入组

  1. userName=test1
  2. adduser ${userName}
  3. gpasswd -a ${userName} dev

测试是否成功

  1. su test1
  2. cd /data
  3. touch test.txt

3、删除用户,但是保留home目录。

  1. userdel test1

4、可以直接删除组

  1. groupdel dev