权限属性小知识(装x指数⭐⭐)

很多人在学习系统权限的时候,都会使用ls -l的指令来了解用户,用户组还有其他人的读写执行权限,如下图
Linux装x小知识
并被告知前十位第一位为文件类型,后九位每三位一组,分别是用户,用户组,其他人的读写执行权限。并且可以通过chmod更改权限。但是当我们使用umask查找默认权限时会出现4位,后三位分别为创建文件/文件夹的执行权限,但是第一位为什么还有个0,是代表什么啊,那个就是特殊权限。

特殊权限

先执行该命令ls -ld /tmp;ls -l /usr/bin/passwd,查看权限是不是有些怪?这便是特殊权限
Linux装x小知识
特殊权限总共有以下三种

SUID

我们的所有账户密码都会存放在/etc/shadow这个文件里面,文件权限全为0,任何人不能读写执行,除了root用户,只有root用户可读和强制写入,但是你自己的账号密码却也可以自己改吧,是不是冲突?这就是SUID权限的功能,你对你自己的账户密码在你使用的时候,会对该文件临时转变为root用户。但是SUID只能用于二进制程序上,不能用于shell脚本上,且对目录无效。即为权限中的s

SGID

该权限与SUID类似,不同的是SGID可以针对文件和目录设置,对文件来说,程序执行者对于该程序来说具有x的权限,执行者执行过程中会获得程序用户组的支持。SGID也可以用在目录中。

SBIT

SBIT只针对目录有效,作用是当用户在该目录下建立文件和目录时,只有自己和root才有权限删除该文件,即为t
那说了这么多怎么设置这些权限?4为SUID,2为SGID,1为SBIT
例如 chmod 4755 filename(755时普通的九位权限)

PS1小知识(装x指数⭐⭐⭐)

学习Linux的时候,开始总会了解到你输入命令前的那一堆东西时什么意思,用户名啊,分割符啊,当前位置啊什么的,但是这个可以改的,即为PS1变量。就例如我在权限小知识中一样,可以改成你喜欢的样式。
我的就是改为了下面的样式Linux装x小知识
打开我们家目录下的.bashrc 文件。vim ~/.bashrc
在尾部加入上面的句子,退出保存,并且用source ~/.bashrc指令使其生效
Linux装x小知识
你就会发现你的和我的一样啦,那这些都代表啥意思啊?
\d 显示出星期,日,月的日期格式
\H 完整主机名字
\h 主机名第一个小数点前的名字(主机名可能带有多个小数点,例如zjq.moliam)
\t 显示时间,24小时格式带秒
\T 显示时间,12小时格式带秒
\A 显示时间,24小时格式不带秒
\@ 显示时间,12小时格式的【am/pm】样式
\u 当前用户名称
\v BASH的版本信息
\w 完整的工作目录名称,家目录会被替换为~
\W 当前目录的最后一个目录
\# 当前终端执行的命令个数
\$ 终端提示符,管理员为#,普通用户为$
还有什么不清楚的自己试一下吧,只要将PS1等号后面加上你想要的格式,并source一下就OK了。
这种方法是在该用户永久生效的,如果只是想要使用一次,可在命令行输入
PS1=‘你想要的格式’,等号两边无空格。

别名小知识(装x指数⭐⭐⭐)

在命令行输入alias便出现了一连串的系统已设置的别名(下面有我自己设置的,如果你没有设置过,应该不会比我的多)
Linux装x小知识
当我们输入一大串经常使用到的命令时,会感到特别苦恼,这命令好长啊,alias帮你解决这个问题。格式如下,
Linux装x小知识
在你刚刚打开的.bashrc下找到上图的前几行,然后在下面写上你想要的简短的指令,然后使用source再次生效,以后你就可以使用该别名然后执行指令了。不过如果别名等于已有的指令时,会优先使用别名。这样做时永久生效的,当你只是想在某个终端使用时,直接在终端写上alias c=‘gcc’,这样就只有该终端使用了,不想使用别名的话,将alias改为unalias即可。
参考文献:鸟哥的Linux私房菜。

相关文章: