二周第四次课(2月1日)

2.18 特殊权限set_uid

2.19 特殊权限set_gid

2.20 特殊权限stick_bit

2.21 软链接文件

2.22 硬连接文件

2.18 特殊权限set_uid

#which passwd

/usr/bin/passwd

# ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

-rws中的s是 set_uid的权限

passwd  支持让普通用户更改自己密码

改密码需要通过修改密码的文件/etc/shadow

/etc/shadow的权限是----------

*root是超级权限,可以更改任何权限,即

使文件是-------权限,也是如此。

*想让普通用户更改密码,又不想让普通用户更改密码文件,set_suid可以实现。

如果执行了set_uid,无论是所有者、所属组或其他用户,都会被临时赋予所有者的权限

*set_uid 的作用是保证普通用户临时拥有所有者身份的命令。

如果给文件设定set_uid文件的前提条件是,这个文件必须是二进制可执行文件。

给ls加set_uid权限

打开新的xhsell ssh连接,切换到其他用户登录,

$su -aming

$ls /root

权限不够

切换回最初原本的Xshell连接

#chmod u+s /usr/bin/ls

#ls -l /usr/bin/ls

-rwsr-xr-x. /usr/bin/ls

标红代表ls set_uid赋予成功。

切换其他用户窗口,

$ls -ld /root/

dr-xr-x--- 发现other user还是没有s权限,此处是因为otheruser只是被临时赋予权限,并不是永久,所以可以临时执行root的ls命令权限。

去掉s权限

#chmod u-s /usr/bin/ls

尝试利用#chmod u=rws /usr/bin/ls来修改权限,

#chmod u=rws /usr/bin/ls

#ls -l /usr/bin/ls

-rwSr-xr-x. /usr/bin/ls

之所以变成S,是因为缺少x权限,此时加上x权限即可,如下

#chmod u+x /usr/bin/ls

#ls -l /usr/bin/ls

-rwsr-xr-x. /usr/bin/ls

2.19 特殊权限set_gid

set_gid和set_uid区别的地方就是,set_gid是对所属组(g)权限修改,而set_uid是所有者(u)权限修改。

此处先还原u的权限,修改为rwx

#chmod u=rwx

#chmod g+s /usr/bin/ls

#ls -l  /usr/bin/ls

-rwxr-sr-x. root root /usr/bin/ls

set_uid 跟set_gid文件功能都相似,只不过是换了角色而已。set_uid的角色是所有者,而set_gid的角色是所属组。

set_gid 可以用在目录上。

为234/创建gid权限

#chmod g+s 234

#ls -ld 234

drwxrwsr-x root root /234/目录

目录颜色没变, 不过g的x变成了s.

#chown :user1 234 所属组设为user1,(所有者root)

#ls -ld 234

drwxrwsr-x. root user1 234/

创建的目录的子文件所属组也是user1

#touch 234/aminglinux

#ls -l 234/

-rw-rw-r-- root user1 aminglinux

创建子目录am,结果所属组也是user1

#mkdir 234/am

ls -l 234/

drwxrwsr-- root user1 am/

-rw-rw-r-- root user1 aminglinux

g-s,创建文件,结果发现,取消s之后,所属组变回root.

#chmod g-s 234

#touch 234/aminglinux111

#!ls

drwxrwsr-- root user1 am

-rw-rw-r-- root user1 aminglinux

-rw-rw-r-- root root aminglinux111

*总结:

当作用在文件上,跟set_uid作用是类似的,让普通用户执行文件并使用set_gid的时候,临时拥有所属组的身份权限。当给一个目录设置set_gid,在这目录创建子目录和子文件的时候,这两者的所属组会跟着当前父级目录保持一致。

2.20 特殊权限stick_bit



stick bit权限,/tmp用得比较多。

drwxrwxrwt.中rwt.的t就是stick_bit,防删除位

#ls -ld /tmp/

drwxrwxrwt. /tmp/

stick_bit

可以理解为防删除位。文件是否可以被某用户删除,主要取决于该文件所在的目录是否对该用户具有写权限。如果没有写权限,则这个目录下所有的文件都不能删除,同时也不能添加新的文件。如果希望用户能够添加文件,但不能删除该目录下其他用户的文件,则可以对父目录增加该权限。设置该权限后,就算用户对目录具有写权限,也不能删除其他用户的文件。

test

新窗口切换到aming用户,

$cd /tmp/

$touch aming

$ls -l

-rw-rw-r-- aming aming aming

所有者,所属组都是aming

$ vi aming 随便写入数据,保存退出wq

$chmod 777 aming

$ls -l aming

-rwxrwxrwx. aming aming aming

$su - user1

1号窗口(2号窗口其他用户作用)切换到user1下

#su - user1

$cd /tmp/

$ls

aming

$vi aming 可以修改,wq。

$rm -f aming 尝试删除 ,提示报错。

此处证明user1不能删除aming创建的文件。

只有root和aming删除

test2

$mkdir user1

$chmod 777 user1

$ls -l

drwxrwxrwx user1 user1 user1

切换至aming用户,

$cd user1

$ls

$touch 1.txt

$mkdir 234

$ls -l

$cd user1

$ ls -l  文件和目录都没有w权限

-rw-rw-r--  aming aming 1.txt

drwxrwxr-x  aming aming 234

测试能否删除,文件和目录均可删除。

*疑问:为什么普通用户没有w权限,都可以删除目录和文件。

因为 所删除的东西的父目录 /user1 写了w权限,而不是看删除文件和目录本身的权限。

总结:

stick bit的作用就是防止别的用户删除自己的文件(除了root)。

2.21 软链接文件

软链接类似于windows的快捷方式,

例如 /bin是一个软链接文件

#ls -l /bin

lrwxrwxrwx. root root /bin ->usr/bin

ls命令位于/bin/ls,

所以平时使用的ls命令,相当于使用/usr/bin/ls

举此例子为软链接格式,

/bin/ls --> /usr/bin/ls .

路径长度影响软链接文件大小

lib64/ 软链接集合

绝对路径用法

#ln -s 源文件路径 目的文件路径

相对路径用法

#ln -s yum.log aming.log

*这样做的弊端是:源的文件名称和路径发生改变的话,直接影响文件打开的效果。

用处

磁盘快满的时候,该磁盘某文件还在写入数据,导致容量越来越膨胀的时候,应该怎么做?

/boot/aming.log 不停大量写入数据进去/boot 此时/boot即将膨胀爆满,

此时应该这样做,

#cp /boot/aming.log /aming.log

#rm /boot/aming.log

同时,迅速

#ln -s /aming.log /boot/aming.log.

这样,服务还是会写入/boot/aming.log

因为写入是通过路径寻找文件。

2.22 硬链接文件

*硬链接核心的地方,就是两个文件使用了同一个inode。(同一indoe只占用一份空间)

硬连接不支持目录,不支持跨分区,只支持文件。

硬链接用法 ln 源 定义名称

#ln 1.txt 1_heard.txt

再做个软链接

#ln -s 1.txt 1_sorft.txt

#ls -l

-rw-rw-r--. 2 1_heart.txt

lrwxrwxrwx. 1 1_sorft.txt-> 1.txt

-rw-rw-r-- 2 1.txt

#ls -i

.....395 1.txt

.....395 1_heard.txt

.....394 1_sorft.txt

删除源1.txt查看属性

#rm -f 1.txt

#ls -l

-rw-rw-r--  1 1_heard.txt

lrwxrwxrwx  1 1_sorft.txt>空 闪红

此时发现,源文件不在,硬链接还在,inode号从2变成1。软链接报错,指向路径失败。

原文地址:http://blog.51cto.com/13578154/2067885

时间: 2024-10-05 17:36:36

二周第四次课(2月1日)的相关文章

Linux学习笔记第三周第四次课(2月8日)

4.1 df命令 df,report file system disk space usage汇报文件系统磁盘空间使用情况: df命令格式:df [选项] df -a:all 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统. df -h:human readable以容易理解的格式输出文件系统大小,例如124KB.345MB.46GB. df -i:inodes 显示i节点使用情况. df -m:以MB为单位显示文件系统使用情况: df -t:type 显示各指定类型的文件系统

Linux20180416三周第四次课(4月9日)

4.1 df命令4.2 du命令4.3/4.4 磁盘分区扩展学习 parted分区gpt格式 http://www.apelearn.com/bbs/thread-7243-1-1.html df命令 df - report file system disk space usage tmpfs说明文件系统是临时文件系统 dev/shm是内存,通常是物理内存的一半 df -h 比较友好的观看模式 -m 是以MB为单位的 -i 是查看inodes的个数和使用情况.inodes是在格式化的过程中创建的

二周第四次课(12月21日)

二周第四次课(12月21日)2.18 特殊权限set_uid2.19 特殊权限set_gid2.20 特殊权限stick_bit2.21 软链接文件2.22 硬连接文件 特殊权限: set_uid (拥有者特殊权限:) #chmod命令: 文件权限属性设置: chmod命令用来变更文件或目录的权限. 在UNIX系统家族里,文件或目录权限的控制分别以; 读取.写入.执行3种一般权限来区分,另有3种特殊权限可供运用. 用户可以使用chmod指令去变更文件与目录的权限, 设置方式采用文字或数字代号皆可

二周第四次课(2月1日)笔记

二周第四次课(2月1日)2.18 特殊权限set_uid2.19 特殊权限set_gid2.20 特殊权限stick_bit2.21 软链接文件2.22 硬连接文件 2.18 特殊权限set_uid特殊权限set_uid普通用户可以用passw改自己的密码.改密码要改一个密码的文件ahadow,普通用户不可能改.要想普通用户能改自己密码,又不能写文件,要设置set_uid.set_uid可以使普通用户临时获得passwd文件的root的身份. 有没有x权限都可以执行 2.19 特殊权限set_g

三周第三次课(12月27日) 3.7 su命令 3.8 sudo命令 3.9 限制root远程登录

三周第三次课(12月27日)3.7 su命令3.8 sudo命令3.9 限制root远程登录 su命令: 用户和工作组管理: su命令用于切换当前用户身份到其他用户身份, 变更时须输入所要变更的用户帐号与密码. 语法: su(选项)(参数) 选项: -c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份: -f或--fast:适用于csh与tsch,使shell不用去读取启动文件: -l或--login:改变身份时,也同时变更工作目录,以及HOME,SHE

三周第五次课(12月29日) 4.5/4.6 磁盘格式化 4.7/4.8 磁盘挂载 4.9 手动增加swap空间

三周第五次课(12月29日)4.5/4.6 磁盘格式化4.7/4.8 磁盘挂载4.9 手动增加swap空间 [[email protected] ~]# [[email protected] ~]# mke2fs命令文件系统管理mke2fs命令被用于创建磁盘分区上的"etc2/etc3"文件系统. 语法:mke2fs(选项)(参数) 选项:-b<区块大小>:指定区块大小,单位为字节:-c:检查是否有损坏的区块:-f<不连续区段大小>:指定不连续区段的大小,单位为

2018.3.29 二周第四次课

特殊权限set_uid 概念:set_uid,当普通用户执行passwd命令时,可以**临时**拥有root权限. set_uid 该权限针对二进制**可执行文件**,如:ls passwd 如下命令,查看 [[email protected] ~]# which passwd #查看这个命令在哪/usr/bin/passwd[[email protected] ~]# ls -l /usr/bin/passwd #查看passwd文件权限-rwsr-xr-x. 1 root root 2783

二周第四次课

2.18 特殊权限set_uid set_uid使二进制的执行程序,普通用户在执行时临时有所有者身份 set uid设置了非可执行文件没有意义 #ll /usr/bin/passwd -rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd ll /etc/shadow ----------. 1 root root 640 Dec  1 03:48 /etc/shadow gpasswd -d aiker root //从root组删

三周第五次课(12月29日)

4.5/4.6 磁盘格式化 centos7所支持的文件系统 格式化 -t 指定格式化成的文件系统  -b 指定块大小 mke2fs -t ext4 -b 2048 /dev/sdb1   mke2fs不支持-t xfs mkfs.ext4 /dev/sdb1 实际等于mke2fs -t ext4 /dev/sdb1 mkfs.xfs /dev/sdb1 这个命令会有提醒  加一个-f强制  mkfs.xfs -f /dev/sdb1 此时分区未挂载,使用命令blkid /dev/sdb1 查看