# 用户权限下放sudo
- 超级用户下放权限配置:
vim /etc/sudoers //无语法检测
visudo //编辑文件/etc/sudoers,但有语法检测
- 文件内容编辑:
@@
99 ## Allow student to run useradd in my host
100 student desktop126.example.com=(root) /usr/sbin/useradd
@@
注意:
**怎么去查看主机名? hostname
**怎么查看命令useradd所在的文件? which useradd
**怎么实现第一次无密码执行命令? NOPASSWD: /usr/sbin/useradd
- 下放权限的用户怎么使用
sudo useradd hello
# 用户认证信息的控制
- 一个文件: /etc/shadow
(user:passwd:最后一次修改密码时间:最短有效期:最长有效期:警告期:非活跃期:失效期:保留)
- 两个命令:
chage(-d,-m,-M,-W,-I,-E)
passwd(-S,-d,-l,-u,-n,-x,-w,-i)
*****************************************************
# 权限
## 1. 查看文件属性(详细信息)
ls -l
-rw-r--r-- 1 root root 0 Dec 30 21:43 hello
drwxr-xr-x 2 root root 6 Dec 30 21:44 test
第一个字节:代表文件类型
- //普通文件
d //目录
s //socket文件
l //链接文件
u:文件所有人对于该文件的权限
g:文件所属组成员对该文件所拥有的权限
o:其他人对文件所拥有的权限
r(read):读权限
对于文件:cat
对于目录:ls
w(write):写权限
对于文件:vim,gedit
对于目录:touch/mkdir,rm/rmdir
x(exec):执行权限
对于文件:普通文件不需要执行权限;
对于目录:能否cd到该目录
## 修改文件所有人和所属组
chown
chown student 文件
chown student.student 文件
chown student 目录 -R
chown student:student 目录 -R
chown --reference=find.all file
//参考find.all修改file文件的所有人和所有组
chgrp
chgrp student 文件
chgrp student 目录 -R
chgrp --reference=find.all file
## 修改文件权限
- 通过字符方式修改
chmod <+|-|=>
chmod u+r,g-w,o=r /mnt/file
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:-
练习:
1.新建用户组,shengchan,caiwu,jishu
2.新建用户要求如下:
* shengchan组是tom用户的附加组
* caiwu组是harry用户的附加组
* jishu组是leo用户的附加组
* 新建admin用户,此用户不属于以上提到的三个部门
3.新建目录要求如下:
* /pub目录为公共存储目录对所有用户可以读,写,执行,
但用户只能删除属于自己的文件;
* /sc 目录为生产部存储目录只能对生产部人员可以写入,
并且生产部人员所建立的文件都自动归属到shengchan组中;
* /cw 目录为财务部存储目录只能对财务部人员可以写入,
并且财务部人员所建立的文件都自动归属到caiwu组中;
* admin用户能用touch工具在/sc目录和/cw目录中任意建立文件,但不能删除文件。
## 系统默认权限的设定
umask值:系统默认要去掉的权限;注意:默认普通文件不需要执行权限。
- 从系统安全角度来看,umask越大越安全。
- 如何设定umask
/etc/bashrc
/etc/profile
## 特殊权限
1). o+t权限:sticky,粘制位
效果:只针对于目录,当目录上有o+t的权限时,所有用户在该目录下均可创建文件,但只有文件所有人和
root用户可以删除该目录下的文件。
设定方式:
chmod o+t 目录
chmod 1777 目录
在系统中的应用:
[root@desktop126 ~]# ll -ld /tmp/
drwxrwxrwt. 28 root root 4096 Dec 31 01:39 /tmp/
2). u+s权限:suid,冒险位
效果:只针对于二进制可执行文件,该命令发起的程序是以该命令所有人的身份去执行。
设定方式:
chmod u+s 二进制可执行文件
chmod 4755 二进制可执行文件
在系统中的应用:
[root@desktop126 ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 29 2014 /usr/bin/passwd
[root@desktop126 ~]# ll /etc/shadow
---------- 1 root root 1493 Dec 30 21:37 /etc/shadow
3). g+s权限:强制位
效果:
针对二进制可执行文件:该命令发起的程序是以该命令所有组的身份去执行;
针对目录:目录新建文件的所属组与该目录的所有组保持一致;
设定方式:
chmod g+s 文件|目录
chmod 2755 文件|目录
## ACL权限:file access control list,文件系统访问控制列表
- 如何查看文件是否有acl权限?
ll /etc/passwd
-rw-r--r--<.> 1 root root 2173 Jan 6 21:08 /etc/passwd
//注释:第11位为.时代表没有acl权限;为+时代表有acl权限。
- setfacl
setfacl -m :
//添加或者修改acl权限
setfacl -m d::
//添加或者修改目录下新建文件默认acl权限
例子:
setfacl -m u:user2:rw hello
//指定user2用户对hello文件有读写权限
setfacl -m g:user2:rw hello
//指定user2用户组对hello文件有读写权限
setfacl -m m:r hello
//指定该文件中最大生效的权限,但不稳定,会随着其他的设定而修改
setfacl -x :
//删除某一个acl权限
setfacl -x d::
//删除某目录下新建文件默认的一个acl权限
例子:
setfacl -x u:user2 hello
//删除user2用户对hello文件的特殊权限
setfacl -x g:user2 hello
//删除user2用户组对hello文件的特殊权限
setfacl -b 文件名
//删除该文件所有的acl权限
setfacl -b 目录名
//删除某目录下新建文件默认的所有的acl权限
例子:
setfacl -b hello
- getfacl
例子:
[root@server136 ~]# 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功能;
系统默认要去掉的权限;
#2.查找文件
## 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. 找出系统中包含特殊权限的文件;
2. 找出/home目录下所有的隐藏普通文件;
3. 将/etc目录下文件大于100K 的文件复制/newetc目录中;
4. 在/etc目录下查找,文件中含有数字并且以.conf结尾的普通文件,查找深度<3,找到后复制到/mnt目
录下
## locate 查找文件
- 速度更快,但新建文件必须更新后才能找到
- 更新方式:updatedb
#3. 打包
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:指定解包的目录
#4. 压缩
## gz格式压缩:
tar cvf etc.tar /etc/ //对/etc目录打包,并指定名称为etc.tar
du -sh etc.tar //查看etc.tar包的大小gzip etc.tar
du -sh etc.tar.gz //对etc.tar进行gz格式压缩
gunzip etc.tar.gz //查看压缩后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,用户描述为“系统管理员”;
- 新建用户组bank1,bank2,使新建的用户组为admin用户的附加组;
- 设置admin用户的密码为“adminpassword”;
- 修改密码使用天数为0,使该用户首次登陆必须改密码;
- 修改密码最短有效期为7,使该用户设置密码等待7天后才可以再次更改密码;
- 给admin用户下放权限,使得该用户可以新建用户(无密码方式)。