Linux用户和组管理

useradd添加新用户

用法:useradd [选项] 登录
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER

[root@localhost ~]# id qn10    #查看用户ID
uid=1001(qn10) gid=1001(qn10)    #组=1001(qn10)
[root@localhost ~]# useradd -u 1010 qn11    #添加用户qn11并设置用户UID1010
[root@localhost ~]# id qn11    #查看qn11id
uid=1010(qn11) gid=1010(qn11) 组=1010(qn11)

配置文件/etc/passwd

/etc/passwd 用户及其属性信息(名称、uid、基本组id等等)
第一字段 用户名
第二字段 密码占位符
第三字段 UID
第四字段 GID
第五字段 用户的描述信息
第六字段 用户家目录
第七字段 用户的登录shell

root@localhost ~]# grep qn11 /etc/passwd    #查找qn11用户及其属性信息(名称、uid、基本组id等等)
qn11:x:1010:1010::/home/qn11:/bin/bash
[root@localhost ~]# useradd -c "Boss" qn12    #添加qn12并加用户的描述信息
[root@localhost ~]# grep qn12 /etc/passwd    #查看qn12
qn12:x:1011:1011:Boss:/home/qn12:/bin/bash
[root@localhost ~]# ll /home    #查看家目录
总用量 4
drwx------.  3 qn10  qn10    78 11月  1 11:45 qn10
drwx------.  3 qn11  qn11    78 11月  1 11:45 qn11
drwx------.  3 qn12  qn12    78 11月  1 11:49 qn12
drwx------. 15 user1 user1 4096 6月  29 15:35 user1

su切换用户

su username 非登录式切换,即不会读取目标用户的配置文件
su - username 登录式切换,即会读取目标用户的配置文件。完全切换
su - 不指定用户时默认切换至root用户
root切换到其他用户需要密码

[root@localhost ~]# ll /opt
总用量 0
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
[root@localhost ~]# useradd -d /opt/qn13 qn13       #添加用户qn13指定家目录/opt
[root@localhost ~]# su -qn13   #切换用户
[qn13@localhost ~]$ ls -a    #显示当前目录下的所有文件及文件夹包括隐藏的.和..等
.  ..  .bash_logout  .bash_profile  .bashrc  .cache  .config  .mozilla
[qn13@localhost ~]$ exit
登出
[root@localhost ~]# ls /opt    #查看opt目录
qn13  qn14  rh
[root@localhost ~]# ls -a /opt/qn14   #显示当前目录下的所有文件及文件夹包括隐藏的.和..等
.  ..
[root@localhost ~]# useradd -r -M -s /sbin/nologin qn15    #添加一个系统用户创建用户时不给其创建家目录当前系统可用的安全shell

usermod修改用户属性

[root@localhost ~]# usermod
用法:usermod [选项] 登录

选项:
-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR 用户的新主目录
-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使用 GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,
并不从其它组中删除此用户
-h, --help 显示此帮助信息并推出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定用户帐号
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL 该用户帐号的新登录 shell
-u, --uid UID 用户帐号的新 UID
-U, --unlock 解锁用户帐号
-v, --add-subuids FIRST-LAST add range of subordinate uids
-V, --del-subuids FIRST-LAST remove range of subordinate uids
-w, --add-subgids FIRST-LAST add range of subordinate gids
-W, --del-subgids FIRST-LAST remove range of subordinate gids
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射

[root@localhost ~]# id qn15    #查看qn15的ID
uid=988(qn15) gid=982(qn15) 组=982(qn15)
[root@localhost ~]# ll /home/    #查看家目录
总用量 4
drwx------.  3 qn10  qn10    78 11月  1 11:45 qn10
drwx------.  3 qn11  qn11    78 11月  1 11:45 qn11
drwx------.  3 qn12  qn12    78 11月  1 11:49 qn12
drwx------. 15 user1 user1 4096 6月  29 15:35 user1
[root@localhost ~]# grep qn15 /etc/passwd    #查找qn15 显示详细信息
qn15:X:988:982::/home/qn15:/sbin/nologin
[root@localhost ~]# id qn10   #查看qn10的ID
uid=1001(qn10) gid=1001(qn10) 组=1001(qn10)
[root@localhost ~]# su - qn10     #切换用户qn10
[qn10@localhost ~]$ ls   查看用户
[qn10@localhost ~]$ echo

[qn10@localhost ~]$ echo 'hello word' > he    #文本输入‘hello Word’到he 文件
[qn10@localhost ~]$ ls    #显示不隐藏的文件与文件夹 
he
[qn10@localhost ~]$ cat he     #查看he文件内容
hello word
[qn10@localhost ~]$ ll /home    #查看家目录
总用量 4
drwx------.  5 qn10  qn10   117 11月  1 12:23 qn10
drwx------.  3 qn11  qn11    78 11月  1 11:45 qn11
drwx------.  3 qn12  qn12    78 11月  1 11:49 qn12
drwx------. 15 user1 user1 4096 6月  29 15:35 user1
[qn10@localhost ~]$ ll /opt    #查看opt目录
总用量 0
drwx------. 5 qn13 qn13 128 11月  1 12:03 qn13
drwxr-xr-x. 2 root root   6 11月  1 12:04 qn14
drwxr-xr-x. 2 root root   6 10月 31 2018 rh
[qn10@localhost ~]$ usermod -m -d /opt/qingnian qn10     #修改用户属性改变用户家目录的同时把原来家目录的文件移动到新的家目录中
usermod: user qn10 is currently used by process 3586
[qn10@localhost ~]$ exit
登出
[root@localhost ~]# usermod -m -d /opt/qingnian qn10      #改变用户家目录的同时把原来家目录的文件移动到新的家目录中
[root@localhost ~]# ll /home/    #查看家目录
总用量 4
drwx------.  3 qn11  qn11    78 11月  1 11:45 qn11
drwx------.  3 qn12  qn12    78 11月  1 11:49 qn12
drwx------. 15 user1 user1 4096 6月  29 15:35 user1
[root@localhost ~]# ll /opt   查看opt
总用量 0
drwx------. 5 qn10 qn10 138 11月  1 12:26 qingnian
drwx------. 5 qn13 qn13 128 11月  1 12:03 qn13
drwxr-xr-x. 2 root root   6 11月  1 12:04 qn14
drwxr-xr-x. 2 root root   6 10月 31 2018 rh
[root@localhost ~]# ls /opt/qingnian/    #显示opt/qingnian/下的文件
he
[root@localhost ~]# usermod -L qn10      #锁定账号qn10
[root@localhost ~]# usermod -U qn10     #解锁 账号qn10
usermod:解锁用户密码将产生没有密码的账户。
您应该使用 usermod -p 设置密码并解锁用户密码。
[root@localhost ~]# grep qn10 /etc/passwd    #查看qn10信息
qn10:x:1001:1001::/opt/qingnian:/bin/bash
[root@localhost ~]# usermod -s /bin/sh qn10    #修改用户登入后所使用的shell,允许登录ssh
[root@localhost ~]# grep qn10 /etc/passwd     #查看qn10信息
qn10:x:1001:1001::/opt/qingnian:/bin/sh
[root@localhost ~]# ll /home/    #查看家目录
总用量 4
drwx------.  3 qn11  qn11    78 11月  1 11:45 qn11
drwx------.  3 qn12  qn12    78 11月  1 11:49 qn12
drwx------. 15 user1 user1 4096 6月  29 15:35 user1

userdel删除用户

用法:userdel [选项] 登录

选项:
-f, --force force some actions that would fail otherwise
e.g. removal of user still logged in
or files, even if not owned by the user
-h, --help 显示此帮助信息并推出
-r, --remove 删除主目录和邮件池
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-Z, --selinux-user 为用户删除所有的 SELinux 用户映射

[root@localhost ~]# userdel -r qn12      #删除用户的同时删除其家目录(userdel默认不会删除其家目录)
[root@localhost ~]# ll /home/    #查看家目录
总用量 4
drwx------.  3 qn11  qn11    78 11月  1 11:45 qn11
drwx------. 15 user1 user1 4096 6月  29 15:35 user1
[root@localhost ~]# userdel qn11  删除qn11
[root@localhost ~]# ll /home/     #查看家目录
总用量 4
drwx------.  3  1010  1010   78 11月  1 11:45 qn11
drwx------. 15 user1 user1 4096 6月  29 15:35 user1

groupadd添加组

用法:groupadd [选项] 组

选项:
-f, --force 如果组已经存在则成功退出
并且如果 GID 已经存在则取消 -g
-g, --gid GID 为新组使用 GID
-h, --help 显示此帮助信息并推出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password PASSWORD 为新组使用此加密过的密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DIR directory prefix

[root@localhost ~]# groupadd  -g 5000 qn100       #添加gid为5000 的账号qn100
[root@localhost ~]# grep qn100 /etc/group           #查找qn100的组及其属性信息
qn100:x:5000:
[root@localhost ~]# grep 5000 /etc/group            #查找5000组及其属性信息查找文件里符合条件的字符串
qn100:x:5000:
[root@localhost ~]# useradd -g 5000 qn16       #添加gid 5000 的用户qn16
[root@localhost ~]# id qn16      #查看qn16的ID
uid=1014(qn16) gid=5000(qn100) 组=5000(qn100)
[root@localhost ~]# groupadd -g 4000 qn101    #添加gid 4000 的新用户qn101
[root@localhost ~]# grep 4000 /etc/group            #查找有4000 的组及其属性信息
qn101:x:4000:
[root@localhost ~]# id qn16       #查看qn16的ID
uid=1014(qn16) gid=5000(qn100) 组=5000(qn100)
[root@localhost ~]# usermod -G 4000 qn16    #修改qn16的组ID 4000
[root@localhost ~]# id qn16     #查看qn16id
uid=1014(qn16) gid=5000(qn100) 组=5000(qn100),4000(qn101)
[root@localhost ~]# usermod -a -G 4000 qn16      #修改组ID4000,不会覆盖此前的附加组
[root@localhost ~]# id qn16   #查看qn16ID
uid=1014(qn16) gid=5000(qn100) 组=5000(qn100),4000(qn101)
[root@localhost ~]# groupadd  -g 3000 qn102    #添加gid3000 的用户qn102
[root@localhost ~]# usermod -G 3000 qn16        #修改组ID 3000
[root@localhost ~]# id qn16        #查看qn16的ID
uid=1014(qn16) gid=5000(qn100) 组=5000(qn100),3000(qn102)
[root@localhost ~]# usermod -a -G 4000 qn16    #修改组ID4000,不会覆盖此前的附加组
[root@localhost ~]# id qn16    #查看qn16的ID
uid=1014(qn16) gid=5000(qn100) 组=5000(qn100),4000(qn101),3000(qn102)
[root@localhost ~]# su qn16      #切换用户qn16
[qn16@localhost root]$ pwd       #显示整个路径名查看工作目录的绝对路径名称
/root
[qn16@localhost root]$ cd    #切换当前目录
[qn16@localhost ~]$ pwd     #显示当前工作目录的路径
/home/qn16
[qn16@localhost ~]$ exit     #退出登录
exit
[root@localhost ~]# su - qn16   #登录qn16
上一次登录:日 11月  1 12:53:59 CST 2020pts/0 上
[qn16@localhost ~]$ pwd   #显示当前工作目录的路径
/home/qn16
[qn16@localhost ~]$ exit   
登出
[root@localhost ~]# su - qn16 -c 'mkdir abc'     #切换登录qn16执行命令,命令执行结束又回到原来的身份
[root@localhost ~]# su - qn16  #登录qn16
上一次登录:日 11月  1 12:55:47 CST 2020pts/0 上
[qn16@localhost ~]$ ll    #:罗列出当前文件或目录的详细信息,含有时间、读写权限、大小、时间等信息 
总用量 0
drwxr-xr-x. 2 qn16 qn100 6 11月  1 12:55 abc
[qn16@localhost ~]$ exit
登出

[root@localhost ~]# tail /etc/group #用于输入文件中的尾部内容
stapdev:X:158:
user1:X:1000:user1
student:X:1002:
qn10:X:1001:
qn13:X:1012:
qn14:X:1013:
qn15:X:982:
qn100:X:5000:
qn101:X:4000:qn16
qn102:X:3000:qn16

passwd设置密码

更改用户 root 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。语法:passwd [options] [USERNAME]
–stdin //从标准输入获取用户密码
-l ,-- 锁定用户
-u ,-- 解锁用户
-d ,-- 删除用户密码
-n, mindays 指定最短使用期限
-x, maxdays 指定最长使用期限
-w, warndays 提前多少天开始警告
-i ,inactivedays 非活动期限,密码过期后到禁用前的这段时间

[root@localhost ~]# id qn16      #查看ID
uid=1014(qn16) gid=5000(qn100) 组=5000(qn100),4000(qn101),3000(qn102)
[root@localhost ~]# grep qn10 /etc/shadow    #显示用户密码及其相关属性
qn10:!!:18567:0:99999:7:::
[root@localhost ~]# usermod -U qn10     #锁定qn10
usermod:解锁用户密码将产生没有密码的账户。
您应该使用 usermod -p 设置密码并解锁用户密码。
[root@localhost ~]# passwd
更改用户 root 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd qn16
更改用户 qn16 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# su qn16
[qn16@localhost root]$ su - qn16
密码:
上一次登录:日 11月  1 13:04:37 CST 2020pts/0 上
[qn16@localhost ~]$ passwd 
更改用户 qn16 的密码 。
为 qn16 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
无效的密码: 密码与原来的太相似
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[qn16@localhost ~]$ passwd qn10
passwd:只有根用户才能指定用户名。
[qn16@localhost ~]$ exit
登出
[qn16@localhost root]$ exit
exit
[root@localhost ~]# echo 'redhat'|passwd --stdin qn16     #输入redhat 在qn16中密码从标准输入获取
更改用户 qn16 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# ll /opt    #查看opt
总用量 0
drwx------. 5 qn10 qn10 138 11月  1 12:26 qingnian
drwx------. 5 qn13 qn13 128 11月  1 12:03 qn13
drwxr-xr-x. 2 root root   6 11月  1 12:04 qn14
drwxr-xr-x. 2 root root   6 10月 31 2018 rh
[root@localhost ~]# mkdir /opt/test   #创建目录/test
[root@localhost ~]# ll /opt    #查看opt目录
总用量 0
drwx------. 5 qn10 qn10 138 11月  1 12:26 qingnian
drwx------. 5 qn13 qn13 128 11月  1 12:03 qn13
drwxr-xr-x. 2 root root   6 11月  1 12:04 qn14
drwxr-xr-x. 2 root root   6 10月 31 2018 rh
drwxr-xr-x. 2 root root   6 11月  1 13:34 test

openssl自动生成密码

//语法:openssl command [ command_opts ] [ command_args ]
command //包含标准命令、消息摘要命令、加密命令
version //查看程序版本号
dgst //提取特征码
passwd //生成密码
rand //生成伪随机数

[root@localhost ~]# openssl dgst -md5 /opt/test     #提取特征码
Read Error in /opt/test
139633985955728:error:0200B015:system library:fread:Is a directory:bss_file.c:255:
139633985955728:error:20082002:BIO routines:FILE_READ:system lib:bss_file.c:256:
[root@localhost ~]# openssl passwd -1 -salt hellotom
Password: 
$1$hellotom$ZGTi2zafUyHSyJGgAMNAx.
[root@localhost ~]# tr -dc A-Za-z0-9 < /dev/urandom | head -c 30 | xargs   #自动生成密码
TPGqOgSyDLkowukde7QXiHop93GLnU
[root@localhost ~]# tr -dc A-Za-z0-9 < /dev/urandom | head -c 30 | xargs
wIh4IikZwnyBrsODv0Ihg4N4s4CGfe

groupdel删除组

用法:groupdel [选项] 组

选项:
-h, --help 显示此帮助信息并推出
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-f, --force delete group even if it is the primary group of a user

[root@localhost ~]# groupdel qn101     #删除组qn101  
[root@localhost ~]# grep qn101 /etc/group    #显示qn101组及其属性信息

修改权限的命令chmod

-R //递归修改权限
文件权限三个对象
owner:属主,u
group:属组,g
other:其它,o
权限:r:读w:写x:执行
r=4;w=2;x=1;

[root@localhost ~]# ll /home   #查看家目录
总用量 4
drwx------.  3  1010  1010   78 11月  1 11:45 qn11
drwx------.  6 qn16  qn100  139 11月  1 13:04 qn16
drwx------. 15 user1 user1 4096 6月  29 15:35 user1
[root@localhost ~]# su - qn16    #切换用户
上一次登录:日 11月  1 13:04:55 CST 2020pts/0 上
[qn16@localhost ~]$ cd /tmp  切换到tmp目录
[qn16@localhost tmp]$ ll
总用量 0
[qn16@localhost tmp]$ touch abc    #创建文件abc
[qn16@localhost tmp]$ ll
总用量 0
-rw-r--r--. 1 qn16 qn100  0 11月  1 14:26 abc
[qn16@localhost tmp]$ id    #查看ID
uid=1014(qn16) gid=5000(qn100) 组=5000(qn100),3000(qn102) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[qn16@localhost tmp]$ cat abc   #查看abc
[qn16@localhost tmp]$ ll
总用量 0
-rw-r--r--. 1 qn16 qn100  0 11月  1 14:26 abc
[qn16@localhost tmp]$ echo 'hello word' > abc     #输入‘hello Word’到abc
[qn16@localhost tmp]$ chmod o= abc    #修改其他权限为空
[qn16@localhost tmp]$ ll  #查看
总用量 4
-rw-r-----. 1 qn16 qn100 11 11月  1 14:28 abc
[qn16@localhost tmp]$ cat abc    #查看abc的内容
hello word
[qn16@localhost tmp]$ chmod o=rw abc    #添加其他的读写权限的命令
[qn16@localhost tmp]$ chmod o+x abc   #修改其他用户权限添加执行权限的命令
[qn16@localhost tmp]$ ll   #查看
总用量 4
-rw-r--rwx. 1 qn16 qn100 11 11月  1 14:28 abc
[qn16@localhost tmp]$ chmod o-x abc    #修改其他用户权限减去执行权限的命令
[qn16@localhost tmp]$ ll
总用量 4
-rw-r--rw-. 1 qn16 qn100 11 11月  1 14:28 abc
[qn16@localhost tmp]$ chmod a=rwx abc   #修改全部添加读写执行权限
[qn16@localhost tmp]$ ll
总用量 4
-rwxrwxrwx. 1 qn16 qn100 11 11月  1 14:28 abc
qn16@localhost tmp]$ chmod a=777 abc   #修改全部添加读写执行权限
[qn16@localhost tmp]$ ll
总用量 4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值