Linux权限学习

前言

这是一篇个人总结 萌新入门Linux,看的书籍是

正好最近还看了markdown编写,觉得很有意思,所以尝试玩以下,顺便记录下所学。

第五章

第五章

灵活使用虚拟机快照功能,以免出现前面给的权限太高后面不用设置就可以用的情况

灵活使用虚拟机快照功能,以免出现前面给的权限太高后面不用设置就可以用的情况

灵活使用虚拟机快照功能,以免出现前面给的权限太高后面不用设置就可以用的情况

第五章就主要介绍了Linux多用户这个特点

用户与能力

root是超级用户,拥有最高权限。 本书作者推荐我们使用超级用户进行学习(网上可能大部分会推荐使用普通用户),因为我们有虚拟机快照功能

root是超级用户不是因为他叫root,她之所以是超级用户的原因是他的UID是0。linux系统中使用UID来判断用户(自然的UID具有唯一性)。

需要注意的是,UID是不能冲突的,而且管理员创建的普通用户的UID默认是从1000开始的(即使前面有闲置的号码)。

同时,lunux还有用户组的概念,你可以通过使用用户组号码(GID)将多个用户加入到同一个用户组,当你对这个用户组进行操作时,组中的每一个用户都会被操作。由此来看Linux真的是很方便的。

关于基本用户组和拓展用户组

用户相关的几个简单的命令

用户的属性一般包括

-用户的家目录 – 账户的到期时间

– 用户的uid

– 用户的基本组

– 用户的拓展组

– 用户的默认Shell编辑器

id 用户名用于查看该用户名的ID拓展组(GID)基本组

useradd命令可以添加用户,若不加参数则uid默认从1000向后加,-u参数可以指定该用户的uid,还有其他参数,想做具体了解可以看书。使用多个参数格式如下

e.g. useradd -d /home/linux -u 8888 -s /sbin/nologin linuxdown

groupadd 用户组名命令用于创建新的用户组

usermod命令用于修改用户的属性 一般来说要usermod命令只能超级用户使用,但是普通用户在获得管理员权限后也可以使用usermod命令修改用户属性。

passwd命令用于修改用户的密码、过期时间等信息,英文全称为“password”,语法格式为“passwd [参数] 用户名” 普通用户只能使用passwd命令修改自己的系统密码,而root管理员则有权限修改其他所有人的密码,而且修改别人密码时不用输入旧密码。超级用户还是顶的 |参数|作用| |:—|:—| -l |锁定用户,禁止其登录 -u |解除锁定,允许用户登录 –stdin| 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd –stdin Username -d |使该用户可用空密码登录系统 -e |强制用户在下次登录时修改密码 -S |显示用户的密码是否被锁定,以及密码所采用的加密算法名称

userdel命令可以删除用户(当然是需要超级用户权限)

小应用 在用户之间进行切换的命令是su(关于su的具体用法看文章偏后面的内容)所以你可以在root用户下使用useradd命令创建个新用户,随后使用usermod修改改用户属性,使用passwd命令修改新用户的登录密码。这样之后可以使用su命令先切换到一个普通命令,然后使用su命令切换到新用户,他会让你输入密码的,若要返回root命令要使用exit命令,当然你还可以试试passwd命令中的-d让该用户可以免密码登录。 所有都玩了个遍了在root用户中反手userdel给他删喽。

文件权限与归属

文件的可读、可写、可执行权限的英文全称分别是read、write、execute,可以简写为r、w、x,亦可分别用数字4、2、1来表示,这就是我们说的数字表示法 如图:

还记得ls命令嘛,ls命令用于显示目录文件中的文件信息,“-l” 参数可以查看文件的属性、大小等详细信息。 ls -l命令最先显示出来的就是文件权限。文件的数字法表示并不困难,多熟悉一下即可。

文件的特殊权限

chmod命令用来设置文件或目录的权限, 可以很方便的用数字法表示 chown命令可以设置文件或目录的所有者和所属组

SUID命令 对于我的理解 SUID命令是针对linux命令的(书上写的是二进制程序),书上只是简单介绍了SUID命令,但是没有讲怎么应用。 书上举的例子是passwd命令,照我的理解 本来是只能root用户修改用户密码的,但是因为passwd这个命令被suid设置了root用户的一部分权限,所以,普通用户在调用passwd命令时便有了root用户的一部分呢权限,所以便可以修改自己的密码了。

chmod u+s 命令是一种将文件或目录设置为 SUID(Set User ID)权限的方式。

SGID 如果理解了SUID命令就可以理解SGID第一个用法,对一个程序使用SGID命令后,在使用该命令时变可以获得该用户组的权限 书中举了一个ps的命令可以帮助理解。 第二个用法是对目录进行SGID命令设置,设置后,在目录中创建的文件会自动继承该目录的用户组(即该用户组所有人均可以有和创建文件的人一样的权限)

SBIT命令 BIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。

此外,在加上这三个命令后对原本的数字法还产生了其他影响,这部分强烈建议看一下书

chattr命令与lsattr命令(文件的隐藏属性)

chattr命令用于设置一般权限外(RWX外)的隐藏权限 用法为chattr 参数 文件。 chattr的参数如下 |参数|作用| |:—|:—| i| 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 a| 仅允许补充(追加)内容,无法覆蓋/删除内容(Append Only) S| 文件内容在变更后立即同步到硬盘(sync) s| 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域) A| 不再修改这个文件或目录的最后访问时间(atime) b| 不再修改文件或目录的存取时间 D| 检查压缩文件中的错误 d| 使用dump命令备份时忽略本文件/目录 c| 默认将文件或目录进行压缩 u| 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 t| 让文件系统支持尾部合并(tail-merging) x| 可以直接访问压缩文件中的内容

都是些很好玩的权限,玩的好了骗骗没学过的人还是很有意思的。 lsattr 我们知道 ls命令可以显示文件的一般权限,而隐藏权限则需要其他命令,就是lsattr命令 lsattr 参数 文件 一般常用的参数是-a,意思是显示全部隐藏权限,其他的书上没给,我自己查了一下有 "-a":显示全部内容,包括隐藏的文件; "-l":以长格式显示; "-R":递归地查看子目录下的文件和目录; "-v":显示文件版本号; "-c":当遇到错误或不正确的标识符时,将其视为一个普通文件处理; "-d":对于目录而言,只列出目录本身而不是它内部的内容。 大概这样。

setfacl与getfacl命令(文件访问控制列表)

首先"chmod" 和 "setfacl" 命令都用于设置文件或目录的权限,但它们在实现细节和功能上有所不同。 ACL(Access Control List)是在 Linux 等操作系统中用于实现更细粒度的文件或目录访问控制的一种机制。 如果针对某个目录设置了ACL,则目录中的文件会继承其ACL权限;若针对文件设置了ACL,则文件不再继承其所在目录的ACL权限。

su命令与sudo服务

su命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户,比如从root管理员切换至普通用户

如果两个用户都是你还好,如果不是你想使用root权限那岂不是要给他root的密码,这多多少少不大好 这时我们可以使用sudo命令把特定命令的执行权限赋予指定用户,这样既可保证普通用户能够完成特定的工作,也可以避免泄露root管理员密码。我们要做的就是合理配置sudo服务,以便兼顾系统的安全性和用户的便捷性。

使用sudo命令可以给普通用户提供额外的权限来完成原本只有root管理员才能完成的任务,用法为`sudo 参数 命令名称

当然,如果担心直接修改配置文件会出现问题,则可以使用sudo命令提供的visudo命令来配置用户权限。 这里书中讲的很好,还给了例子,强烈建议去看一下

在 Linux 中,sudo 是一个强大的命令行工具,它允许超级用户或特定授权用户以管理员身份运行程序或其它命令。通过 sudo 命令,管理员可以控制哪些用户执行哪些命令,以及哪些命令需要提供密码验证才能执行。 如 作为超级用户 (root) 运行命令: sudo command 以另一个用户身份运行命令: sudo -u linuxprobe command(-u是以指定用户身份执命令)

发表回复

相关推荐

英语词汇:六个表示 “想像"“设想” 动词

英语词汇 六个表示 “想像” 、“设想” 动词 嘉中 imagine、conceive of、 fancy、visualize、 envisage、 envision 这组词语 ...

· 2分钟前

关于国旻的一些小事分析。

很多看起来是巧合的东西背后隐藏了许多。 7说过自己记性差,但是关于5的一切都记得,并且记得很好。包括两人的1108纪念日 7 ...

· 5分钟前

膝盖撞伤,感染发炎,痂下化脓

11.9号,被车撞了,当时膝盖只有一道小伤口,也不痛。就觉得没什么事。它自己会好的,我也就没去管它。当时没有拍照片,真的 ...

· 10分钟前

《海贼王》配角志:Mr2冯•克雷 (BON CLAY)

优衣库最近联名了许多动画,作为一个喜爱二次元的肥宅第一件事就是去找自己喜欢的动画,其实是专门去找《银魂》和《海贼王》 ...

· 11分钟前

“好久不見”英文到底該怎麼說?錯過就可惜瞭!

點擊免費領取英語水平測試和外教一對一課程“hello”、“Bye”、“See you”是我們和人見面和分別打招呼常用的詞語,那麼“好久不見”...

· 11分钟前