linux基本命令改变文件的权限(linux大神必懂的文件用户管理和文件权限)
上章节给大家整理了Linux系统目录结构,即各个目录的文件作用是什么、还有文件的链接,本文主要给大家分享linux用户管理、文件操作权限等,我来为大家讲解一下关于linux基本命令改变文件的权限?跟着小编一起来看一看吧!
linux基本命令改变文件的权限
上章节给大家整理了Linux系统目录结构,即各个目录的文件作用是什么、还有文件的链接,本文主要给大家分享linux用户管理、文件操作权限等。
用户管理
一、 增加新的用户帐号
以新增一个 m5 账号为例:
useradd z3 添加新用户 z3
passwd z3 赋予新用户 z3 口令
说明:①新用户只有被赋予口令后才能使用;
②Redhat Linux 中,adduser 是 useradd 的符号连接。
③useradd 命令常用的参数:
-u 设置用户的 UID
-g 设置用户的 GID
-d 设置用户的主目录
-G 使该用户成为其他组的成员
-s 用户的登录 shell,默认为 /bin/bash
-c comment 用户注释
-p 同时设置口令,注意无空格。(Redhat 版支持)
添加新用户的操作实际上是修改了/etc/passwd、/etc/shadow 文件,在/home 下为创建主目录,并将/etc/skel 目录内容拷入。
二、 /etc/passwd 文件
/etc/passwd 文件记录用户账号信息,(权限:root.root 644)
该文件每行由 7 个域组成,之间由冒号分隔:
用户名:口令:UID:GID:注释:用户主目录:shell
例如:root:x:0:0:root:/root:/bin/bash
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
z3:x:500:500:ZhangSan:/home/z3:/bin/bash
l4:x:501:501:LiSi:/home/l4:/bin/bash
w5:x:502:502:WangWu:/home/w5:/bin/bash
m6:x:503:503:MaLiu:/home/m6:/bin/bash
说明:
UID:用户标识; GID:组标识; x :口令被加密
用户名应该唯一,如不唯一则系统只认前面的一个。
UID 不必唯一。相同的 UID 具有完全相同的权限。
普通用户的 UID≥500 只不过是个约定。但等于 0 则具有特别意义,即拥有 root 权限。其实获得 UID=0 的特权就是网络攻击者的目标。
三、 /etc/shadow 文件 (权限:root.root 400)
/etc/shadow 文件主要用于记录加密加密后的口令,其格式:
username: password: last:may: must: warn: expire: disable: reserved
last:上次更改口令日期,从 1970-1-1 起计算的天数;
从 may 至 nust 的期间,用户才可以更改口令;
warn:在 must 前多少天提示用户更改口令;
expire:在 must 后多少天使用户账号失效;
disable:只用来记录账号失效的天数;
reserved:保留,尚未使用。例:
root:$1$RE9bMMe8$4G3nQB7tiyYYHKLJMdY.m/:12770::99999::::
ftp:*:12734:0:99999:7:::
z3:$1$vqHltSd2$/Zv6HBjDXknqkY8MTiW.20:12763::99999::::
l4:$1$2eRrDN.g$fCtWeiIvonMyVW5NklRfI0:12763::99999::::
w5:$1$sTaNpD10$ho3C12iBGIaVD1kxfOaCj/:12763::99999::::
m6:$1$4zO8RY6k$cOTmCThcLfWL7plnWlBFt0:12772:0:0:0:0::
四、 用户组
groupadd 命令用于创建用户组
将一个已经存在的用户加入组可使用 usermod –G 命令
例:
groupadd g1 创建用户组 g1
usermod -G g1 z3 收 z3 为 g1 组成员
关于组的操作实际上是在修改/etc/group 文件。
字符界面下尚未发现有可用的命令用于对组成员的剔除,
此时,对于组管理的最有效手段是手工修改/etc/group 文件。
五、 /etc/group 文件 (权限:root.root 644)
/etc/group 文件记录组信息,每行一组,格式:
组名:口令:GID:成员列表(成员之间用逗号隔开)
若需组口令可执行 gpasswd。加密的组口令存于/etc/gshadow。
六、 用户的私有组与登录组
useradd 在创建用户的同时也创建了一个同名组。
新用户默认属于自己的组。这个组称为用户私有组。
其他用户也可以成为这个私有组的成员并享受该组成员权利
(仅 root 有权操作)。
/etc/passwd 文件中的 GID 表示的是用户的默认组。
usermod –g 命令可以改变用户的默认组,也称登录组:
例:usermod –g z3 l4 修改 l4 的默认组属于 z3
此后用户创建的所有目录与文件的组属性属于新的默认组。
七、 删除用户或组
userdel 删除用户。
例 userdel –r w5 删除 w5(-r 表示同时删除其主目录)
groupdel 删除组 例:groupdel g2
(注意:一些资料上说该命令不能删除非空组,但实验证实在 redhat Linux 中可以删除非空组,而且该命令没有确认机制,请慎用!)
八、 改变用户设置
usermod 命令用于改变用户的账号设置,如 UID、GID、注释、主目录、shell。其参数分别是 -u、-g、-c、-d、-s。
chage 命令用于修改口令的有效期。
具体用法请参考系统帮助。
九、 禁止用户账号
修改用户的 shell 为 nologin 或 false 可阻止其登录系统。
例:usermod –s /sbin/nologin 或 usermod –s false
十、 用户的身份转换
su 命令可改变用户身份,不仅省却了注销和重新登录过程,而且在使用 root 身份无法登录的 Telnet 网络登录的情况下更为有用。( su 是替代用户(Substitute user)的意思,但常被理解为 super user)。
例:su root 在依提示输入 root 口令后转为 root 身份
但这种转换并没有相应地改换系统运行环境,提示符类似:
[root@localhost z3]#
用户已是 root,但仍运行于 z3 的运行环境下。这会引起一些程序的运行结果不正常,与真实的 root 环境是大有区别的(比如就无法执行关机复位等操作)。要想同时获得新用户的环境,应在 su 与用户名间加-号并空格,
即:su - root
这时系统提示符显示:[root@localhost root]#
十一、 其它
① 执行“id 用户名”命令可列出用户的 UID、GID 和所有组
② 与 W2K 不同,Linux 的组不能吸纳其它组为成员。
第六章 Linux 文件权限
一、 用户分类与文件访问权
• Linux 将用户划分为四类;
root ;或所有 UID=0 的用户,具有至高权限;
owner :文件的所有者,默认即文件的创建者;
group ;所属组,除 owner 外同组其他成员有同等权限;
world ;除上面三类外的其他普通用户。
自然,Linux 的权限管理只针对 owner、group、world。
• 访问权限有三种;读、写、执行,分别用 r、w、x 表示
ls –l 命令显示的结果中第 1 列的 2-10 分别表示三类用户对
此文件(或目录)的三种访问权限,“-”表示无此权限,例:
-rwxr-x- - - 2 z3 g1 737 oct 7 18:42 a.sh
表示 a.sh 文件为 z3 所有,属于 g1 组,z3 具有全部权限,
g1 组内其他成员具有读和执行权限,其他用户无任何权限。
• 为便于记忆与交流,专业人员习惯以八进制描述权限,比如
上例文件的访问权限可表示为 750。
二、 文件权限与目录权限
文件与目录的访问权限都分为读、写和执行,但作用不同:
读权限
写权限
执行权限
文件
读取文件内容 修改该文件
执行
目录
列出其中的文件名
在其中创建或删除文件
进入目录注意:
⑴在 Linux 中一个文件是否是可执行文件与其扩展名无关。
其可否执行取决于两个条件:用户是否具有执行权限;该文件是否是可执行文件。 普通的文本文件(非脚本文件)即便被赋予执行权限也无法执行。File 命令可查看文件类型。
⑵Redhat Linux 9.0 上的实验表明:若要对目录中的文件名列表或在其中创建与删除文件都必须要对该目录拥有执行权限。这点与很多书籍上的说法存在出入。
三、 改变文件的所有者和所在组
① chown 命令:改变文件的所有者
例:chown l4 a.txt 改 a.txt 文件的所有者为 l4
chown l4 mydir 改 mydir 目录的所有者为 l4
chown –R l4 mydir 将 mydir 目录全部归 l4 所有
说明:⑴ -R 参数表示递归操作,即把 mydir 及其下的所有
目录与文件的所有者都改为 l4。
⑵ 只有 root 用户有劝执行 chown 命令。
② chgrp 命令:改变文件的所属组
例:chgrp g1 a.txt 改 a.txt 文件的所属组为 g1
chgrp –R l4 mydir 递归改变 mydir 目录所属组
说明:普通用户也可以执行 chgrp 命令,但前提条件是该
用户必须同时具备两组的成员身份。③同时改变所有者和所属组
chown newuser.newgroup filename_or_directory
即用点连接新所有者和新组,执行 chown 命令。
例:chown l4.g1 mydir
四、 改变文件的访问权限
• chmod 命令用于修改文件或目录的访问权限。命令格式:
chmod 权限 文件或目录名
例:chmod 755 /home/l4 修改 l4 的主目录访问权限为 755
(注:如果需要,当然也可以使用递归操作参数-R)
• 还可以使用字符串取代八进制的权限表示:
u、g、o、a 分别表示 owner、group、world、all
r、w、x 分别表示 read、write、exec
、- 分别表示增加、去除权限
例:chmod a r g x u xw /home/l4
使/home/l4 对任何人可读、组用户可执行、拥有者可读可执行
又例:chmod x install.sh
使当前目录下的 install.sh 文件对任何人可执行。这种用法常
用在改变下载文件的权限属性以便其可执行。
注意:
⑴对硬连接的访问权限修改会同时影响到所有相关的硬连接权限属性。因为它们是同一个文件。
⑵对软连接的访问权限修改只改变了被连接文件的权限属性,
连接文件自身的访问权限并没有被修改,仍是 777。
五、 用户的默认访问权限和 umask
用户在创建新文件时,系统通常按默认值赋予其权限:
目录
一般文件
root
755
644
普通用户
775
664
影响用户的权限默认值的是个与用户相关的系统值 umask。
Root 的 umask=022,普通用户的 umask=002
目录的默认权限等于:777 与 umask 反码;(777 减去 umask)
文件的默认权限等于:666 与 umask 反码。(666 减去 umask)
不带参数地执行 umask 将显示当前用户的 umask 值。
umask 新值 可改变当前用户的 umask 值,
例:umask 222 令当前用户 umask=222,任何人都不可写
说明:
⑴umask 只与用户有关,与当前在哪个目录无关。
⑵只能改变自己的 umask,并且只对自己的本次登录有效。
下次登录 umask 还是原值。所以修改的意义似乎不大。
⑶注意:“减去 umask”的说法只是一些书籍上为不熟悉布
尔代数的初学者提供的一种权宜的助记方法,该说法其实很有问题,造成很多现象无法解释。笔者认为准确的说法应该是:“默认的访问权限等于权限基值与上‘umask 的反码’,对于新建目录和新建文件来说,其权限基值分别是 777 和 666;但对于由拷贝操作产生的新目录和新文件来说,其权限基值就是源目录(或源文件)的原有值”。也就是将权限基值上的那些与 umask 中置 1位相对应的权限位清零便可得到新文件的默认权限值。
六、 理解 SUID 和 SGID
先分析一个现象:
记录用户账号信息的/etc/passwd 文件其权限是:root.root 644
记录加密口令的/etc/shadow 文件其权限是: root.root 400
对于普通用户 passwd 只能读而不能改写;shadow 连读都不允许。可为什么我们可以通过 passwd 命令改写自己的口令?
查看一下命令程序 usr/bin/passwd 文件的属性:
/usr/bin/passwd 文件其权限是:root.root -r-s- -x- -x
这个文件是允许普通用户执行的。root 的执行位是 s,就是这个 s 使普通用户执行 passwd 时具有了 root 身份从而获得了对/etc/passwd 和/etc/shadow 的完全访问权(root 什么权没有?)。
实际上表示 Linux 文件权限的是 12bit,前面的 3bit 是:
SUID:若文件可以执行,则按所有者身份运行;
SGID:若文件可以执行,则按组成员身份运行;
sticky:粘接位,结束后仍驻留内存。目前并不常用。在 ls –l 命令显示中的表示方法:
SUID 置位:所有者的执行位的 x 被 s 取代;
SGID 置位:所属组的执行位的 x 被 s 取代;
sticky 置位:其他人的执行位的 x 被 t 取代。
所以,-r-s- -x- -x 用值表示就是 4511。
注意,使用 SUID 和 SGID 位要特别小心。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com