我用 LinuxLinux学习之路程序员

Linux用户账号与分组

2017-09-15  本文已影响99人  fanyank

用户账号

与用户账号相关的两个文件:

  1. /etc/passwd
root:x:0:0:root:/root:/bin/bash
fanyank:x:1000:1000:This is my username:/home/fanyank:/bin/bash
1       2   3    4             5               6          7
  1. /etc/shadow
root:$6$0OJo2FY.$3beQsSvVUsJ8kgLsMBGczwiKk5jo2HwgP714fgnDB4R0kevyepVfoVvD/dg9VfaVVev8rdONZPe2ZP81MEHDr0:17388:0:99999:7:::
fanyank:$6$yaE0qxKD$K6BycZBR5SpeG202tH6yVS5..QxAAgTEoMc5rcVLKI.pERh.1ogMphoyhE/t9ftsXfeDHjl86WW1NJH80ZbR91:17388:0:99999:7:::
    1                                                                     2                                   3  4   5   6 789

用户组

与用户组相关的两个文件:

  1. /etc/group:
root:x:0:
fanyank:x:1000:
    1   2   3   4

我们从上可以看出root和fanyank两个用户组并没有包含任何账号,但是实际上root确实属于root用户组,fanyank也是属于fanyank用户组的,这是因为 root和fanyank这两个账号的初始用户组为root和fanyank,初始用户组是不需要填入的

下面引出两个概念,初始用户组(initial group)有效用户组(effective group)

  1. /etc/gshadow:
root:*::
fanyank:!::
    1   2 3 4

使用newgrp切换有效用户组

newgrp 组名

账号管理

  1. 新增用户:
useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-mM] [-c 说明] [-d 主文件夹绝对路径] [-s shell] 用户名
  1. 修改密码:
passwd [--stdin]
eg: echo "haha" | passwd --stdin fanyank
passwd [-lu] [-S] 账号
  1. 修改账号设置:
usermod [-cdegGlsuLU] 账号
eg: usermod -a -G fanyanks fanyank
  1. 删除用户:
userdel [-r] username

用户组管理

添加用户组:

groupadd [-g gid] [-r] 用户组名

修改用户组:

groupmod [-g gid] [-n group-name] 用户组名

删除用户组

groupdel 用户组名

用户身份切换

su [-lm] [-c 命令] [username]

单纯的使用su切换,读取变量方式为no-login shell,环境配置不会生效

sudo

sudo [-b] [-u 新用户账号]
eg: sudo -u fanyank touch /tmp/myfile
注意下例的写法,sh -c "一串命令"
eg: sudo -u fanyank sh -c "mkdir ~fanyank/www;cd ~fanyank/www;echo 'This is index.html file' > index.html"
上一篇 下一篇

猜你喜欢

热点阅读