1.用户权限下放 sudo
超级用户下放权限配置:
vim /etc/sudoers //无语法检测
visudo //编辑文件/etc/sudoers/,但有语法检测
文件内容编辑:
注意:
怎么去查看主机名? hostname
怎么查看命令useradd所在的文件? which useradd
怎么实现第一次无密码执行命令? NOPASSWD: /usr/sbin/useradd
下放权限的用户怎么使用
sudo useradd user1
2.用户认证信息的控制
一个文件: /etc/shadow
(user:passwd:最后一次修改密码时间:最短有效期:警告期:非活跃期:失效期:保留)
两个命令:
chage(-d,-m,-M,-W,-I,-E)
chage -E //set account expiration date to EXPIRE_DATE
passwd(-S,-d,-l,-u,-n,-x,-w,-i)
权限:
查看文件属性(详细信息)
ls -l
drwxrwxr-x. 4 kiosk kiosk 52 Jan 10 15:37 Linux_study
-rwxrwxr-x. 1 kiosk kiosk 294 Jan 10 14:57 rht-desktop.desktop
-rwxrwxr-x. 1 kiosk kiosk 289 Jan 10 14:57 rht-server.desktop
第一个字节:代表文件类型
- //普通文件
d //目录
s //socket文件
l //链接文件
u:文件所有人对于该文件的权限
g:文件所属组成员对该文件所拥有的权限
o:其他人对文件所拥有的权限
r(read):读权限
对于文件:cat
对于目录:ls
w(write):写权限
对于文件:vim,gedit
对于目录:touch/mkdir,rm/rmdir
x(exec):执行权限
对于文件:普通文件不需要执行权限;
对于目录:能否cd到该目录
3.修改文件所有人和所属组
-chown-
Usage: chown [OPTION]… [OWNER][:[GROUP]] FILE…
or: chown [OPTION]… –reference=RFILE FILE…
Change the owner and/or group of each FILE to OWNER and/or GROUP.chown student 文件(仅改变所属用户)
chown student.student 文件(改变所属用户和所属组)
chown student 目录 -R(-R 递归)
chown student:student 目录 -R
chown –reference=find.all file //参考find.all修改file文件的所有人和所有组
-chgrp-
chgrp student 文件
chgrp student 目录 -R
chgrp –reference=find.all file
4.修改文件权限
通过字符方式修改
chmod <u|g|o><+|-|=><r|w|x> 目标
eg. chmod u+r,g-w,o=r /mnt/file
eg. chmod u=rw,g=r,o-r /mnt/file
通过数字方式修改
r:4 w:2 x:1
7:rwx 6:rw- 5:r-x 4:r–
3:-wx 2:-w- 1:–x 0:—
u:rwx g:rx o:-
5.系统默认权限的设定
umask值:系统默认要去掉的权限;
注意:默认普通文件不需要执行权限。
从系统安全角度来看,umask越大越安全。
如何设定umask
/etc/bashrc
/etc/profile
6.特殊权限
1)o+t权限: sticky,粘制位
效果:只针对于目录,当目录上有o+t的权限时,所有用户在该目录下均可创建文件,但只有文件所有人和root用户可以删除该目录下的文件。
设定方式:
chmod o+t 目录
chmod 1777 目录
在系统中的应用:
2)u+s权限: suid,冒险位
效果:只针对于二进制可执行文件,该命令发起的程序是以该命令所有人的身份去执行。
设定方式:
chmod u+s 二进制可执行文件
chmod 4755 二进制可执行文件
在系统中的应用:
3)g+s权限: 强制位
效果:
针对二进制可执行文件:该命令发起的程序是以该命令所有组的身份去执行;
针对目录:目录新建文件的所属组与该目录的所有组保持一致;
设定方式:
chmod g+s 文件|目录
chmod 2755 文件|目录
练习:
1).新建用户组,shengchan,caiwu,jishu
2).新建用户要求如下:
* shengchan组是tom用户的附加组
* caiwu组是harry用户的附加组
* jishu组是leo用户的附加组
* 新建admin用户,此用户不属于以上提到的三个部门
3).新建目录要求如下:
* /pub目录为公共存储目录对所有用户可以读,写,执行,
但用户只能删除属于自己的文件;
*/sc 目录为生产部存储目录只能对生产部人员可以写入,
并且生产部人员所建立的文件都自动归属到shengchan组中;
*/cw 目录为财务部存储目录只能对财务部人员可以写入,
并且财务部人员所建立的文件都自动归属到caiwu组中;
*admin用户能用touch工具在/sc目录和/cw目录中任意建立文件,但不能删除文件。
7.ACL权限:file access control list,文件系统访问控制列表
如何查看文件是否有acl权限?
第11位为.时,代表没有acl权限;为+时,代表有acl权限。
-setfacl-
setfacl -m <u|g|m>:<username|groupname>:rwx 文件名 //添加或者修改acl权限
setfacl -m d:<u|g|m>:<username|groupname>:rwx 目录名 //添加或者修改目录下新建文件默认acl权限
eg. setfacl -m u:user1:rw hello //指定user1用户对hello文件有读写权限
setfacl -m g:user1:rw hello //指定user1用户组对hello文件有读写权限
setfacl -m m:r hello //指定该文件中最大生效的权限,但不稳定,会随着其他的设定而修改
setfacl -x <u|g>:<username|groupname> 文件名 //删除某一个acl权限
setfacl -x d:<u|g>:<username|groupname> 目录名 //删除某目录下新建文件默认的一个acl权限
eg. setfacl -x u:user1 hello //删除user1用户对hello文件的特殊权限
setfacl -x g:user1 hello //删除user1用户组对hello文件的特殊权限
setfacl -b 文件名 //删除该文件所有的acl权限
setfacl -b 目录名 //删除某目录下新建文件默认的所有的acl权限
eg. setfacl -b hello-getfacl-
eg.
[root@localhost Desktop]# getfacl hello
# file: hello //文件名
# owner: root //文件所有人
# group: root //文件所属组
user::rw- //文件所有人对该文件的权限
user:user1:rw- //特定用户user1对该文件的权限
user:user2:rw-
group::r– //文件所属组成员对该文件的权限
group:user2:rw- //特定用户组user2对该文件的权限
mask::rw- //默认给最大的权限
other::r– //其他人对该文件的权限
注意:
umask -022 777-022=755 644 系统默认要去掉的权限;
mask 系统默认最多要给的权限;
rhel6版本及以前的版本不支持acl功能
7.find命令
find 目录 寻找的条件 条件内容
寻找的条件:
-name //根据名字
-user
-group
-perm //根据权限寻找(-666,并且;/666,或者)
-type //根据类型 man find(搜寻-type)
-mmin //最后修改时间(-4,4min以内修改的)
-size //根据文件大小
-maxdepth
-mindepth
条件的连接:
-o //或者
-a //并且
对找到的所有执行:
-exec
eg. find /etc -name passwd -exec cp {} /mnt \;
练习
1).找出系统中包含特殊权限的文件;
find / -perm /7000
2).找出/home目录下所有的隐藏普通文件;
find /home -name “.*” -a -type f
3).将/etc目录下文件大于100K 的文件复制/newetc目录中;
mkdir /newetc
find /etc -size +100k -exec cp {} /newetc \;
4).在/etc目录下查找,文件中含有数字并且以.conf结尾的普通文件,查找深度<3,找到后复制到/mnt目录下
find /etc -maxdepth 3 -a -name “*[[:digit:]]*.conf” -a -type f -exec cp {} /mnt \;
8.locate 查找文件
速度更快,但新建文件必须更新后才能找到
更新方式:updatedb
9.打包
tar cvf etc.tar /etc
c: create
v:显示过程
f:指定包名
tar tf etc.tar
t:显示包的内容
tar f etc.tar -r westosfile
-r:向包中添加文件
tar f /root/etc.tar - -get westosfile
- -get:获取包中的westosfile文件
tar f /root/etc.tar - -delete westosfile
- -delete:删除包中的westosfile文件
tar xf etc.tar -C /mnt/
x:解开包
-C:指定解包的目录
10.压缩
gz格式压缩
tar cvf etc.tar /etc/ //对/etc目录打包,并指定名称为etc.tar
du -sh etc.tar //查看etc.tar包的大小
gzip etc.tar //对etc.tar进行gz格式压缩
du -sh etc.tar.gz //查看压缩后etc.tar.gz的大小
gunzip etc.tar.gz //解压缩
tar zcf etc.tar.gz /etc
tar zxf etc.tar.gz
bz2格式压缩:
bzip2 etc.tar
bunzip2 etc.tar.bz2
tar jcf etc.tar.bz2 /etc/
tar jxf etc.tar.bz2
xz格式压缩:
xz etc.tar
unxz etc.tar.xz
tar Jcf etc.tar.xz /etc/
tar Jxf etc.tar.xz -C /mnt
zip格式压缩:
zip -r etc.tar.zip etc.tar
unzip etc.tar.zip
练习
1).运行tar命令对/home目录进行存档另存,存储格式及位置为
/backups/user-YYYY-MM-DD.tar.gz,从而保证用户信息的保密与安全;
2).将上述打包的/backups/user-YYYY-MM-DD.tar.gz解压到/mnt目录下。
作业
1).(密码管理)某管理员建立一用来管理帐号的用户admin,满足以下条件:
- uid=7777,gid=7777,用户描述为“系统管理员”;
2).新建用户组bank1,bank2,使新建的用户组为admin用户的附加组;
3).设置admin用户的密码为“adminpassword”;
4).修改密码使用天数为0,使该用户首次登陆必须改密码;
5).修改密码最短有效期为7,使该用户设置密码等待7天后才可以再次更改密码;
6).给admin用户下放权限,使得该用户可以新建用户(无密码方式)。