- sudo命令
概念:
sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等。这样不仅减少了root用户的登录和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。
特性:
1、sudo能够限制用户只在某台主机上运行某些命令
2、sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。
3、sudo使用时间戳文件--日志 来执行类似的"检票"系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
4、sudo的配置文件是/etc/sudoers,属性必须为0440,它允许系统管理员集中的管理用户的使用权限和使用的主机。
语法:
选项:
|------------|-------------------------------------------------|
| -V | 显示版本信息 |
| -h | 显示版本编号及指令的使用方法说明 |
| -l | 显示自己(执行sudo的使用者)的权限 |
| -v | 第一次执行时或几分钟没有执行会问密码 |
| -s | 执行环境变数中的SHELL所指定的是shell,或者/etc/passwd 所指定的shell |
编辑配置文件命令:
visudo
提示:
编辑sudo的配置文件/etc/sudoers时一般不要直接使用vi编辑器去编辑,因为sudoers配置有一定的语法,直接用vi编辑保存系统不会检查语法,如有错也保存了可能导致无法使用sudo工具,最好使用visudo命令去配置。当出现错误保存时会提示。
普通用户在使用sudo命令时, 语法:sudo command username
实例:
创建新用户user1,让他能够使用useradd命令添加用户user2
- //首先在root用户下创建user1
- #useradd user1
- //给user1设定密码
- #echo "密码" | passwd --stdin user1
- //配置文件
- #visudo
- //找到root,在其下面进行编辑
- #user1 ALL=(root) /usr/sbin/useradd
- //切换至user1用户
- #su - user1
- //创建user2
- #useradd user2
- 此时用户user2已添加成功
二、文件系统权限管理
1、权限对象:
(1)、文件拥有者
文件拥有者,我们也称为文件属主,由于Linux系统是一个多用户多任务的系统,因此会有很多人来使用这部主机,为了考虑每一个人的隐私,文件所有者这个权限就尤为重要。
(2)、群组
群组是权限中最有用的功能之一,群组简单理解就是用户组,类似于我们公司的各个部门之间,或者学校的班级之间的划分,每一个班级就是一个群组,群组内的资源是共享的,群组之间是相互隔离的。
(3)、其他人
对于非文件的拥有者,或者文件的所属组以外的人,我们称为其他人。
2、权限类型:
在了解Linux的权限对象后,接下来我们了解一下文件的权限类型是如何来针对权限对象设定的,这部分相当重要,对于初学者来说,如果没有使用root用户的情况下,会发现处处受阻。
Linux文件的属性
ls -l可列出文件的长属性
Linux权限基于UGO模型进行控制。U代表User,G代表Group,O代表Other;每一个文件的权限基于UGO进行设置。Linux的基本权限分为读、写、执行(r、w、x),可用数字4、2、1表示。
属主:权限位的左三位,即第一个rwx
属组:权限位的中三位,即第二个rwx
其他:权限位的右三位,即第三个rwx
实例
将 700、640用权限位表示
700:rwx --- ---
640:rw- r-- ---
3、权限说明
(1)、对于文件而言
权限 说明
r 可获取文件数据
w 可修改文件数据
x 可将此文件运行为进程
(2)、对于目录而言
权限 说明
r 可以使用ls命令获取其下的所有文件列表
w 可修改此目录下的文件列表;即创建或删除文件
x 可cd至此目录下,且可以使用ls -l来获取所有文件的详细属性信息
提示
判断用户对文件的权限: 用户能进入到文件所在目录,即对操作的文件所在的目录有x权限。
4、文件权限逻辑判断
(1)、删除文件:对文件所在目录有W权限
判断用户的身份,用户以什么身份去删除文件,owner--->group--->others
如果是目录的属主:目录权限位的左三位需要有w权限,若有则成功,无则失败
如果不是目录的属主,是属组,目录权限位中三位需要有w权限,若有则成功,无则失败
如果是其他人,目录权限位中的右三位需要有w权限,若有则成功,无则失败
(2)、新建文件和删除文件是一样的逻辑
三、权限管理类命令
1、权限管理命令
(1)、语法
SYNOPSIS
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
(2)、三类用户:
u:属主
g:属组
o:其他
(a:所有)
2、MODE表示方法
(1)、赋权表示法:rwx
u=rwx 或 u=r 等
g= rx 或 g=r 等
o= rwx 或 o=rw 等
a=r 或 a=rwx 等
(2)、授权表示法:rwx
u+w ,u-x 等
g+x,g-x 等
o+r,o-w 等
a+x,a-w 等
注意:
选项:-R,- -recursive:递归修改,将目录下的所有文件权限都修改
用赋权表示法修改file1文件的属组权限,改成
用授权表示法修改file1文件的属组权限,改为6
3、从属关系管理命令:chown,chgrp
(1)、chown命令:
一般来说,这个命令只有root用户有使用权限,普通使用者没有使用权限。
语法
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
选项
-c 显示更改的部分的信息
-f 忽略错误信息
-h 修复符号链接
-v 显示详细的处理信息
-R 递归修改
- -help 显示辅助说明
- -version 显示版本信息
实例
将文件file1的拥有者设为apple,群组为applegroup。
chown apple : applegroup file1
(2)、chgrp命令:
用于改变文件或目录的所属群组。
语法
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
选项
-c 或 - -changes 效果类似"-v",但只返回更改部分
-f 或 - -quiet 或 - -silent 不显示错误信息
-h 或 - -no-dereference 只对符号链接的文件做修改,不更改其他任何相关文件
-v 或 - -verbose 显示指令执行过程
-help 显示帮助信息
- -reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同
- -version 显示版本信息
注意:仅管理员可修改文件的属主和属组
实例
将文件file1的所属组有root改为bin