用户组和权限管理3
一、杂项知识整理
1、硬链接:写源文件可以是相对地址,相对于链接文件。例如
[root@localhost testdir]# ln ../etc/fstab aaa ln: 无法创建硬链接"aaa" => "../etc/fstab": 无效的跨设备连接 [root@localhost testdir]# ln ../etc/fstab /tmp/aaa
2、cp -r /etc/skel/. /testdir/user1 复制文件夹内的所有文件而不复制..。如果用[root@localhost user]# cp -r /testdir/user.dir/.[^.]* /tmp/user1,其目标只能是存在的并且只能复制隐藏文件。
3、adduser是useradd的软链接:
[root@localhost default]# ll `which useradd` -rwxr-x---. 1 root root 114056 3月 6 2015 /usr/sbin/useradd [root@localhost default]# ll `which adduser` lrwxrwxrwx. 1 root root 7 7月 19 04:58 /usr/sbin/adduser -> useradd
4、组中有其它用户时删除无法删除组;
5、whoami查看的是当前用户是谁,而who am i查看的是谁在终端登录,即不管用su还是su -登录,只要root登录终端,who am i都显示root。
6、userdel命令:可以在/etc/login.defs文件中更改配置变量。
-f 强制删除用户账号,即使用户仍然在登录,包括主目录和邮箱和同名的组
-r 删除主目录和邮箱
7、id命令:查看用户相关信息:
-u 查看UID
-g 查看GID
-G groups
-n name
[root@localhost testdir]# id uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [root@localhost testdir]# id -G 0 [root@localhost testdir]# id -u 0
8、换个身份执行命令:su – user -c COMMAND
[root@localhost testdir]# su - user1 -c date 2016年 08月 03日 星期三 10:37:13 CST
9、chfn;chsh指定个人信息和指定shell:
[root@localhost ~]# chfn Changing finger information for root. 名称 [root]: ^C [root@localhost ~]# chsh Changing shell for root. New shell [/bin/bash]: ^C
10、groupadd
-g 指定GID号
-r 创建系统组
centos7:ID<1000
[root@localhost ~]# groupadd -r -g 589 servicetest [root@localhost ~]# tail /etc/group harry:x:1009: sarah:x:1010: sales:x:3000: user1:x:2223:user1 user2:x:2224: user3:x:2225: user4:x:2226: user5:x:2227: user6:x:2228: servicetest:x:589:
11、groupmod命令:-n 指定新名字 -g GID;
groupdel删除组
gpasswd 更改组密码
-a USER 将user添加至指定组中
-d USER 从指定组中移除用户user
-A user1,user2….设置有管理权限的用户列表
newgrp命令:临时切换基本组:如果用户本不属于此组,则需要组密码;如果没有设置密码则只有本组用户可以切换。
[user1@localhost ~]$ newgrp user3 密码: 无效的密码。 [user1@localhost ~]$ exit 登出 [root@localhost ~]# gpasswd user3 正在修改 user3 组的密码 新密码: 请重新输入新密码: [root@localhost ~]# su - user1 上一次登录:三 8月 3 11:20:41 CST 2016pts/0 上 [user1@localhost ~]$ newgrp user3 密码: [user1@localhost ~]$ groups user3 user1
二、命令详解及事例
1、当需要同时创建多个用户时,useradd不能实现,其对象只能是一个,所以需要批量建立用户和创建密码:命令newusers和chpasswd,单独给一个用户设置密码也可以用echo user:PASSWD | chpasswd:
按格式新建一user个文件:格式为:用户:x:UID:GID:(注释或描述):/家目录(不存在目录):bash
[root@localhost testdir]# !cat cat user user1:x:2223:2223::/home/user1:/bin/bash user2:x:2224:2224::/home/user2:/bin/bash user3:x:2225:2225::/home/user3:/bin/bash user4:x:2226:2226::/home/user4:/bin/bash user5:x:2227:2227::/home/user5:/bin/bash user6:x:2228:2228::/home/user6:/bin/bash [root@localhost testdir]# newusers user
按格式创建一个passwd文件,内容一一对应:格式为:用户:密码
[root@localhost user1]# cat /testdir/userpasswd user1:123456 user2:123456 user3:123456 user4:123456 user5:123456 user6:123456 [root@localhost user1]# cat /testdir/userpasswd | chpasswd
完成后,将/etc/skel的隐藏文件复制到用户家目录并更改其权限,因为已经做过因此提示覆盖,最后便完成了创建批量用户,无家目录也可以登录但是无配置文件,邮件文件会在收到文件后自动生成,系统用户无家目录和邮箱:
[root@localhost user1]# cp -rf /etc/skel/.[^.]* /home/user3 cp:是否覆盖"/home/user3/.bash_logout"? y "/etc/skel/.bash_logout" -> "/home/user3/.bash_logout" cp:是否覆盖"/home/user3/.bash_profile"? y "/etc/skel/.bash_profile" -> "/home/user3/.bash_profile" cp:是否覆盖"/home/user3/.bashrc"? y "/etc/skel/.bashrc" -> "/home/user3/.bashrc" cp:是否覆盖"/home/user3/.zshrc"? y "/etc/skel/.zshrc" -> "/home/user3/.zshrc" [root@localhost user1]# chown -R user4:user4 /home/user4 [root@localhost user1]# ll -a /home/user4 总用量 20 drwx------. 2 user4 user4 72 8月 2 01:41 . drwxr-xr-x. 18 root root 4096 8月 2 02:26 .. -rw-r--r--. 1 user4 user4 18 8月 3 08:30 .bash_logout -rw-r--r--. 1 user4 user4 193 8月 3 08:30 .bash_profile -rw-r--r--. 1 user4 user4 231 8月 3 08:30 .bashrc -rw-r--r--. 1 user4 user4 658 8月 3 08:30 .zshrc
2、chmod命令:见下篇
3、usermod命令:用户属性修改:
-u UID 新UID
-g GID 新基本组
-a 添加附加组,只能和-G使用
-G GROUP 新附加组,可以多个
直接添加,原来的附加组将会被覆盖;若保留原有,则需要同时使用-a选项表示append;
因此删除一个用户所有附加组有两种方法:直接使用-G覆盖;或者-G “”,但是两者还是有一些区别的。例如:
[root@localhost testdir]# usermod -aG user2,user3,user4 user1 [root@localhost testdir]# tail /etc/group natasha:x:1008: harry:x:1009: sarah:x:1010: sales:x:3000: user1:x:2223: user2:x:2224:user1 user3:x:2225:user1 user4:x:2226:user1 [root@localhost testdir]# usermod -G "" user1 [root@localhost testdir]# tail /etc/group natasha:x:1008: harry:x:1009: sarah:x:1010: sales:x:3000: user1:x:2223: user2:x:2224: user3:x:2225: user4:x:2226: user5:x:2227: user6:x:2228: [root@localhost testdir]# usermod -G user1 user1 [root@localhost testdir]# tail /etc/group natasha:x:1008: harry:x:1009: sarah:x:1010: sales:x:3000: user1:x:2223:user1 user2:x:2224: user3:x:2225: user4:x:2226: user5:x:2227: user6:x:2228:
-s SHELL 新的默认shell
-c “” 新的默认注释信息
-d HOME 新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家目录数据,同时使用-m选项。
-l login_name 新的名字
-L 锁定用户,在/etc/shadow密码栏增加!
一次只能设定一个!,解锁也解一个,而passwd锁定及解锁一次两个
-U 解锁
-e YYYY-MM-DD 指定用户账号过期日期
-f INACTIVE 设定非活动期限
4、chown命令:见下篇
5、passwd命令:修改指定用户的密码,仅root用户权限;或修改自己的密码:
-l 锁定指定用户
-u 解锁指定用户
-e 强制用户下次登录修改密码:
[root@localhost ~]# passwd -e user3 正在终止用户 user3 的密码。 passwd: 操作成功
-n # 指定最短使用期限
-x # 最大使用期限
-w # 提前多少天开始警告
-i # 非活动期限
–stdin 从标准输入接收用户密码
[root@localhost ~]# echo "123456789" | passwd --stdin user5 更改用户 user5 的密码 。 passwd:所有的身份验证令牌已经成功更新。
原创文章,作者:SilencePavilion,如若转载,请注明出处:http://www.178linux.com/27622