useradd相关补充:
1.新建一个用户创建时的一些默认权限在/etc/default/useradd配置中
2.新建用户家目录的过程实际就是将/etc/skel中的所有文件,拷贝到新建用户的/home下,并更改为改用户的用户名
3.批量新建用户:newusers
例:先创建一个文本文档,写入要创建于passwd格式相同的文件
1,vim users.txt
用户名:密码:uid:gid:描述信息:家目录:shell
user1:x:501:501::/home/user1:/bin/bash
user2:x:502:502::/home/user2:/bin/bash
2, newusers users.txt
批量修改用户密码
1,vim passwd.txt
user1:user1
user2:user2
2, cat passwd.txt | chpasswd
4.还有其他的一些默认配置在/etc/login.defs
用户属性的一些修改:
1.usermod:修改用户
-u: 修改uid
-g:修改gid
-G:修改用户的附加组(特别注意,当追加用户的附加组时,要配合a选项,否则直接覆盖用户的附加组)
-s:修改用户的shell类型
-d:修改家目录的位置(当新的家目录不存在时,-d选项不会自动创建,要加-m选项,自动创建家目录, 并将原有家目录下的文件移动到新的家目录中)
-L:锁定用户
-U:解锁用户
-e:指定用户过期日期 时间日期的格式是2000-10-10
-f:修改用户宽限时间
例:修改user1用户的一些相关信息
usermod -u 600 -g 600 -Ga(追加附加组) user2 -s /bin/csh -dm /tmp/user2
查看用户有几个附加组用groups
清空所以附加组:usermod -G "" user1
扩展技巧:拷贝/etc/skel下的所有目录来恢复家目录
cp -r /etc/skel/. /tmp/user1
2.userdel:删除用户
-r:删除家目录
注意:当删除用户时,也会同时删除这个用户的属组,当这个用户的属组是其他用户的附加组时,这个用户的属组不能被删除
3.id:显示用户关于id的一些信息
-u:显示用户id号
-n:显示用户名(要配合-u使用,显示用户名)
-g:显示组id号(同样要配合-u使用,显示组名)
-G:显示附加组
4.su:切换用户
su 用户名:不读取用户的配置信息,切换后保存原有目录不变
su – 用户名:完全切换
-c:用其他用户执行一条命令时,用-c 例 su – user1 -c 'pwck'
5.设置口令:passwd
-l:锁定用户
-u:解锁用户 当用户密码为空时,解锁用户默认不允许解锁,要用-f选项强制解锁
-e:强制用户下次登录时修改口令
-n:设置最短修改时间
-x:设置最长修改时间
-w:设置警告时间
-i:设置宽限时间
–stdin:标准输入 例:echo 1234 | passwd –stdin user1
也可以用 echo user1:1234 | chpasswd 修改口令
6 chage:修改密码策略
-E:最长密码有效期
-m:最短修改时间
-M:最长修改时间
-I:设置宽限时间
-W:警告时间
可以不加任何选项,以交互的方式修改
chage user1
其他命令扩展:
chfn:修改usermod 修改的是(useradd -c 说明信息)
chsh:修改shell
finger 指定格式修改用户说明信息
组:
1.groupadd:创建组
groupadd+选项+组名
-r:创建系统组
-g:指明gid
groups + 用户:查看用户属于哪个组
2.groupmems:查看组信息(修改辅助组)
groupmems -l -g 组名
-a:追加用户(需要有-g选项) 例 groupmems -a user1(用户名) -g group2(组名)
也可以用id+用户名看附加组信息
3.groupmod:修改组信息
-g:修改组id
-n:修改组名
4.groupdel:删除组 groupdel + 组名
5.gpasswd:更改组密码
gpasswd + 组名 (修改方式是交互式的)
-a:添加用户到组 gpassed -a user1(用户) group1(组)
-d:删除组内一个用户
-A:将用户设置为管理员 gpasswd -A user group1
文件权限:
1.文件的权限主要有3个对象
a.属主
b.属组
c.其他用户
2.每个对象对应的权限:
r w x
d rwx r-x r-x. 2 root root 6 Jul 21 11:40 Desktop
文件类型 属主的权限 属组的权限 其他用户权限 属主 属组
3.chown:修改文件的属主
chown 属主 文件名
也可以同时修改属主属组:[chown 属主:属组 文件名] chown user1:group1 file1
-R:表示递归修改
补充:chown user1: file1 说明:这条命令表示将file1文件的属主属组同时改成user1
chown :group1 file1 这条命令表示将file1文件的属组改成group1,属主不变
4.chgrp:修改文件的属组
-R:递归
chgrp group1 file1
5.chmod:修改文件权限
1.授权修改:
chmod u=.. ,g=.. ,o=.. file1
chmod u+.. ,g+.. ,o+.. file1
或者chmod a=.. or a+.. file1
(..用rwx代替)
2.数值修改
chmod 777 file1
3.参考修改
chmod –reference=file2 file1
6.文件的权限
r: 可以ls
x:可以cd 读cat目录内文件内容
w:配合x能删能创建
递归给权限时X可以只给文件夹x权限,不给文件夹内文件的x权限
用数字表示权限
rwx:111 rw-:110等
7.补充说明:
a.只有root可以修改文件的属主,即使是文件的属主也不能修改文件属主
b.chgrp 文件的属组可以在属主的附加组内转换
umask:
1.umask:这条命令可以查看默认umask值
对于目录:可以理解成777-umask值=新建目录的默认权限
对于文件:可以理解成667-umask值=新建文件的默认权限
因为linux默认对文件没有执行权限
本质:从最大权限屏蔽掉权限问得出最后权限
应该是权限位相减,对于文件来说如果原来没有执行权限,那么即使umask为奇数,也不减执行x的权限位
2.默认值:
umask + 屏蔽权限位
例 umask 002
以上这种写法只是临时有效
修改.bashrc 可以永久有效,修改后不会立即生效,执行. .bashrc,立即生效
对于root用户来说,默认的umask=022
对于其他用户来说,默认的umask=002
在/etc/profile和/etc/bashrc文件中定义的
-p:显示umask值
return:umask 022
实际用法:umask -p >> ~/.bashrc
文件的特殊权限:
1.suid:表示其他用户可以临时拥有[二进制文件]属主的执行权限 ,在属主的权限位的x位变成s位
chmod u+s file1
实例:/bin/passwd
拥有suid的文件要特别小心,它可以让其它用户拥有二进制文件的属主的权限
2.sgid:表示其他用户临时继承拥有了[二进制文件或者目录]的组的权限,在属组的权限位的x变成s
chmod g+s file1
实例:对于目录来说有2个用户属于目录的属组,那么他们所建立的文件的属组变为他们所在目录的属组
例:drwxrwsrwx user1 group1 dir1
user2和user3都属于group1那么他们所建立的文件的属组都为group1
若是other其他用户,那么需要看other是否又权限,如果有,那么他们所建的文件的属组依然是group1
3.sticky:只能作用在目录上,锁定目录内的其他用户所建文件不被删除
实例:/tmp/目录
文件的特殊属性:
1. chattr:
+i:不能被删除改名,和修改 chattr +i file1
+a:只可以增加,不能删除 chattr +a file1
2.lsattr:查看文件的特定属性
ACL访问控制列表:
1.setfacl:setfacl + 选项 + u/g/o : 用户名、组名 : 权限 + 文件
-m:增加
setfacl -m u:user1:rw file1
-x:删除权限
setfacl -x u:user1 file1
-b:清空所有acl权限
setfacl -b file1
-R:递归
setfacl -Rm g:group1:rwX dir1
-M:调用已经写好的文件的acl
1.echo “u:user1:rw” > acl.txt
2.setfacl -M acl.txt file1
-X:减去调用的文件
u前面加d
setfacl -m d:u:user1:rw dir1
表示在dir1 这个目录下用户user1所创建的文件默认有rw权限
2.mask:限制除所有者和other外的人
包括用acl允许的用户、组和文件本身的属组
setfacl -m mask::rw file1
作业:
1. 复制/etc/fstab文件到/var/tmp下,设置文件所有者为wangcai读写权限,所属组为sysadmins组有读写权限,其他人无权限
cp /etc/fstab /var/tmp/
useradd wangcai
groupadd sysadmins
chown wangcai:sysadmins /var/tmp/fstab
chmod u=rw,g=rw,o= /var/tmp/fstab
2.误删除了用户wangcai的家目录,请重建并恢复该用户家目录及相应的权限属性
useradd wangcai
rm -rvf /home/wangcai
cp -r /etc/skel/. /home/wangcai
chown wangcai:wangcai /home/wangcai
useradd user1
[root@localhost ~]# chmod –reference=/home/user1 /home/wangcai
[root@localhost ~]# chmod –reference=/home/user1/.bashrc /home/wangcai/.bashrc
[root@localhost ~]# chmod –reference=/home/user1/.gnome2/ /home/wangcai/.gnome2/
[root@localhost ~]# chmod –reference=/home/user1/.mozilla/ /home/wangcai/.mozilla/
[root@localhost ~]# chmod –reference=/home/user1/.bash_logout /home/wangcai/.bash_logout
[root@localhost ~]# chmod –reference=/home/user1/.bash_profile /home/wangcai/.bash_profile
3.在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。
groupadd g1
groupadd g2
groupadd g3
mkdir -p /data/testdir
chmod g=rwx /data/testdir
chgrp g1 /data/testdir
chmod g+s /data/testdir
useradd alice
groupmems -a alice -g g2
setfacl -Rm g:g2:rwx /data/testdir
gpasswd -a tom g3
setfacl -Rm g:g3:rx /data/testdir
chmod o= /data/testdir
4.创建组sales,gid 3000,passwd:centos,sales admins:user2
将用户user1,user2,user3加入到sales辅助组
希望user1 创建新文件 默认的所属组为sales
user2将用户user3从sales组移除
删除sales,user1,user2
groupadd -g 3000 sales
gpasswd sales
centos
useradd user1
useradd user2
useradd user3
gpasswd -A user2 sales
gpasswd -a user1 sales
groupmems -a user2 -g sales
usermod -aG sales user3
su user1
newgrp sales
exit
su user2
gpasswd -d user2 sales
passwd -d user1 sales
passwd -d user3 sales
groupdel sales
5.三种权限,三种特殊,acl,chattr 总结
a.三种权限分为 r w x
每个目录和文件都有属主、属组、和其他用户。三种所有者分别对应 r w x
只有r权限: 可以ls
只有写权限: 无任何意义
只有执行权限: 可以cd cat
b.三种特殊权限suid、sgid、sticky
suid:只作用于二进制文件有效,当属组内的其他用户或者other用户有执行权限,那么这些用户就临时拥有了这个二进制文件属主的权限
sgid:作用于二进制文件和目录,作用类似于suid
sticky:作用于目录,锁定目录内的文件不被修改。当这个目录的属主属组有rwx权限,也不可以删除目录下other用户所建立的文件
c.acl访问控制列表
一些传统的权限只能限制属主、属组、other,对于制定用户、组就要用acl实现
d.chattr锁定文件不被删除,修改,重命名
原创文章,作者:landanhero,如若转载,请注明出处:http://www.178linux.com/27769
评论列表(1条)
总结的很好,如果能举例说明,那就更好了