chmod 订阅
chmod是一个计算机函数,功能是改变文件的读写许可设置,如果改变成功返回0,否则返回-1,函数原型是int chmod( const char *filename, int pmode) 展开全文
chmod是一个计算机函数,功能是改变文件的读写许可设置,如果改变成功返回0,否则返回-1,函数原型是int chmod( const char *filename, int pmode)
信息
外文名
chmod
函数功能
改变文件的读写许可设置,
函数原型
int chmod
所属库:
io.h
chmod简介
C语言函数函数名称:chmod函数原型:int chmod( const char *filename, int pmode );所属库:io.h函数功能:改变文件的读写许可设置,如果改变成功返回0,否则返回-1这个例子中实现了把文件sample.txt设置为只读文件:备注:S_IRUSR S_IWUSR S_IXUSR均定义在sys/stat.h头文件下可以使用命令chmod来为文件或目录赋予权限。Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。使用权限:所有使用者格式:chmod [-cfvR] [--help] [--version] mode file...参数说明:mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。-s :在文件执行时把进程的属主或组ID置为该文件的文件属主。-c : 若该档案权限确实已经更改,才显示其更改动作-f : 若该档案权限无法被更改也不要显示错误讯息-v : 显示权限变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)--help : 显示辅助说明--version : 显示版本相关函数:fchmod, stat, open, chown头文件:#include #include 定义函数:int chmod(const char * path, mode_t mode);函数说明:chmod()会依参数mode 权限来更改参数path 指定文件的权限。参数 mode 有下列数种组合:1、S_ISUID 04000 文件的 (set user-id on execution)位2、S_ISGID 02000 文件的 (set group-id on execution)位3、S_ISVTX 01000 文件的sticky 位4、S_IRUSR (S_IREAD) 00400 文件所有者具可读取权限5、S_IWUSR (S_IWRITE)00200 文件所有者具可写入权限6、S_IXUSR (S_IEXEC) 00100 文件所有者具可执行权限7、S_IRGRP 00040 用户组具可读取权限8、S_IWGRP 00020 用户组具可写入权限9、S_IXGRP 00010 用户组具可执行权限10、S_IROTH 00004 其他用户具可读取权限11、S_IWOTH 00002 其他用户具可写入权限12、S_IXOTH 00001 其他用户具可执行权限注:只有该文件的所有者或有效用户识别码为0,才可以修改该文件权限。基于系统安全,如果欲将数据写入一执行文件,而该执行文件具有S_ISUID 或S_ISGID 权限,则这两个位会被清除。如果一目录具有S_ISUID 位权限,表示在此目录下只有该文件的所有者或root 可以删除该文件。返回值:权限改变成功返回0, 失败返回-1, 错误原因存于errno.错误代码:1、EPERM 进程的有效用户识别码与欲修改权限的文件拥有者不同, 而且也不具root 权限.2、EACCESS 参数path 所指定的文件无法存取.3、EROFS 欲写入权限的文件存在于只读文件系统内.4、EFAULT 参数path 指针超出可存取内存空间.5、EINVAL 参数mode 不正确6、ENAMETOOLONG 参数path 太长7、ENOENT 指定的文件不存在8、ENOTDIR 参数path 路径并非一目录9、ENOMEM 核心内存不足10、ELOOP 参数path 有过多符号连接问题.11、EIO I/O 存取错误范例/* 将/etc/passwd 文件权限设成S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH */
收起全文
精华内容
下载资源
问答
  • chmod
    2019-05-18 10:26:41

    控制文件如何被他人所调用。
    权限分为三级 : 文件拥有者u、群组g、其他o。

    chmod [-cfvR] [–help] [–version] mode file…

    [ugoa…][[±=][rwxX]…][,…]

    • • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
    • • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    • • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

    将文件 file1.txt 设为所有人皆可读取 :

    chmod ugo+r file1.txt
    chmod a+r file1.txt

    将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

    chmod ug+w,o-w file1.txt file2.txt

    ex1.py 设定为只有该文件拥有者可以执行 :

    chmod u+x ex1.py

    将目前目录下的所有文件与子目录皆设为任何人可读取 :

    chmod -R a+r *
    chmod 777 file

    数字表示

    语法为:

    chmod abc file

    其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

     r=4,w=2,x=1

    • 若要rwx属性则4+2+1=7;
    • 若要rw-属性则4+2=6;
    • 若要r-x属性则4+1=5。

    chmod a=rwx file
    chmod 777 file

    效果相同

    chmod ug=rwx,o=x file
    chmod 771 file

    若用chmod 4755 filename可使此程序具有root的权限

    chmod 4755与chmod 755 的区别在于开头多了一位,这个4表示其他用户执行文件时,具有与所有者相当的权限。
    例如:root用户创建了一个上网认证程序netlogin,如果其他用户要上网也要用到这个程序,那就需要root用户运行chmod 755 netlogin命令使其他用户也能运行netlogin。
    但是netlogin执行时可能需要访问一些只有root用户才有权访问的文件,那么其他用户执行netlogin时可能因为权限不够还是不能上网。
    这种情况下,就可以用 chmod 4755 netlogin 设置其他用户在执行netlogin也有root用户的权限,从而顺利上网。

    更多相关内容
  • chmod 777 文件或目录 示例:chmod 777 /etc/squid 运行命令后,squid文件夹(目录)的权限就被修改为777(可读可写可执行)。 如果是Ubuntu系统,可能需要加上sudo来执行: sudo chmod 777 /etc/squid 故事的...
  • gulp-chmod 文件的 安装 $ npm install --save-dev gulp-chmod 用法 const gulp = require ( 'gulp' ) ; const chmod = require ( 'gulp-chmod' ) ; exports . default = ( ) => ( gulp . src ( 'src/app.js' ) ...
  • 在linux系统中,chmod和chown命令都可以来设置权限,但他们也是不同的;chmod是用来设置文件夹和文件权限的,比如我们系统中的文件不可读写,需要用来设置777权限;而chown是用来设置用户组的,比如授权某用户组,...
  • Linux chmod命令

    2021-01-07 22:52:56
    Linux chmod命令 Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。 chmod用于管理文件或目录的权限,文件或目录权限的控制分别以读取:registered:、...
  • 本文给大家介绍linux中权限管理命令详解(chmod/chown/chgrp/unmask),具体内容如下: chmod 解释 命令名称:chmod 命令英文原意:change the permissions mode of a file 命令所在路径:/bin/chmod 执行权限:所有用户...
  • Linux chmod命令 Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。 使用权限 : 所有使用者 语法 chmod [-cfvR] [--help] [--version] mode file... ...
  • 主要介绍了mac 系统下使用 chmod 命令修改文件权限的相关资料,需要的朋友可以参考下
  • chmod 755 剖析

    2018-09-07 14:02:13
    第一位7:4+2+1,创建者,可读可写可执行 第二位5:4+1,组用户,可读可执行 第三位5:4+1,其他用户,可读可执行
  • 语法 chmod(file,mode)参数 描述 file 必需。规定要检查的文件。 mode 可选。规定新的权限。 mode 参数由 4 个数字组成: 第一个数字永远是 0 第二个数字规定所有者的权限 第二个数字规定所有者所属的用户组的权限 ...
  • chmod命令语法 这是使用chmod命令时的正确语法: chmod [options] mode [,mode] file1 [file2 ...] 以下是chmod使用的一些常用选项:  ● -f, – silent, – quiet(抑制大多数错误消息)  ● -v, – ...
  • chmod命令的英文原意是“change the permissions mode of a file”,我们简称为“change mode”,意为用来改变文件或目录权限的命令,但是只有文件的属主和超级用户root才能执行这个命令。有两种模式,一种是采用...
  • Linux(二)常用命令chmod/nohup/sed等 1 chmod命令 ​ Linux常用命令chmod:修改文件权限 777和754 ​ Linux系统中,每个用户的角色和权限划分得很细致、严格,每个文件、目录都设有访问许可权限,利用这种机制来...
  • eclipse develop hadoop chmod :Cannot run program "chmod": CreateProcess error=2, ?????????-附件资源
  • linux操作系统 命令chmod 777的用法 修改文件用户权限
  • 这里对文件夹和文件递归执行chmod命令来改变执行权限 <?php function recursiveChmod($path, $filePerm=0644, $dirPerm=0755) { // Check if the path exists if(!file_exists($path)) { return(FALSE); ...
  • chown与chmod的区别

    2020-09-16 00:52:05
    chown与chmod的区别
  • C语言chmod()函数:修改文件权限 头文件: #include <sys> #include 定义函数: int chmod(const char * path, mode_t mode); 函数说明:chmod()会依参数mode 权限来更改参数path 指定文件的权限。 参数 mode ...
  • linux.chmod.bak

    2019-11-28 16:07:16
    根目录777 不在怕 一个命令解决 这是CentOS 7.4版本的纯净系统目录权限文件导入出问题的机器即可 setfacl --restore=/root/linux.chmod.bak
  • 主要介绍了node.js中的fs.chmod方法使用说明,本文介绍了fs.chmod方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
  • 主要介绍了一天一个shell命令 linux文本操作系列-chmod命令用法,需要的朋友可以参考下
  • 手写的linux笔记,图文形式,尽可能的在难点地方写的详细一点,比如周期性的命令crontab,压缩命令,chmod命令的解析等等
  • chmod命令用法详解-chmod修改目录权限

    千次阅读 2020-12-28 21:22:53
    chmod用法:用来修改某个目录或文件的访问权限。语法:chmod [-cfvR] [--help] [--version] [who] [+ | - | =] [mode] 文件名例子:chmod -R 777 /home/linux权限范围的表示法如下:u User,即文件或目录的拥有者;g...

    chmod用法:

    用来修改某个目录或文件的访问权限。

    语法:

    chmod [-cfvR] [--help] [--version] [who] [+ | - | =] [mode] 文件名

    例子:

    chmod -R 777 /home/linux

    权限范围的表示法如下:

    u User,即文件或目录的拥有者;

    g Group,即文件或目录的所属群组;

    o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;

    a All,即全部的用户,包含拥有者,所属群组以及其他用户;

    r 读取权限,数字代号为“4”;

    w 写入权限,数字代号为“2”;

    x 执行或切换权限,数字代号为“1”;

    - 不具任何权限,数字代号为“0”;

    s 特殊功能说明:变更文件或目录的权限。

    命令中各选项的含义为:

    -c : 若该档案权限确实已经更改,才显示其更改动作

    -f : 若该档案权限无法被更改也不要显示错误讯息

    -v : 显示权限变更的详细资料

    -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

    --help : 显示辅助说明

    --version : 显示版本

    操作对象who可是下述字母中的任一个或者它们的组合:

    u 表示“用户(user)”,即文件或目录的所有者。

    g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

    o 表示“其他(others)用户”。

    a 表示“所有(all)用户”。它是系统默认值。

    操作符号可以是:

    + 添加某个权限。

    - 取消某个权限。

    = 赋予给定权限并取消其他所有权限(如果有的话)。

    设置 mode 所表示的权限可用下述字母的任意组合:

    r 可读。

    w 可写。

    x 可执行。

    X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。

    s 在文件执行时把进程的属主或组ID置为该文件的文件属主。

    方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。

    t 保存程序的文本到交换设备上。

    u 与文件属主拥有一样的权限。

    g 与和文件属主同组的用户拥有一样的权限。

    o 与其他用户拥有一样的权限。

    文件名:以空格分开的要改变权限的文件列表,支持通配符。

    r 代表读,w 代表写,x 代表执行,

    如果可读,权限是二进制的100,十进制是4;

    如果可写,权限是二进制的010,十进制是2;

    如果可运行,权限是二进制的001,十进制是1;

    具备多个权限,就把相应的 4、2、1 相加就可以了:

    若要 rwx 则 4+2+1=7

    若要 rw- 则 4+2=6

    若要 r-x 则 4+1=5

    若要 r-- 则 =4

    若要 -wx 则 2+1=3

    若要 -w- 则 =2

    若要 --x 则 =1

    若要 --- 则 =0

    实例

    将文件 1.txt 设为所有人皆可读取 :

    chmod ugo+r 1.txt

    将文件 file1.txt 设为所有人皆可读取 :

    chmod a+r 1.txt

    将文件 1.txt 与 2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

    chmod ug+w,o-w 1.txt 2.txt

    将 1.py 设定为只有该文件拥有者可以执行 :

    chmod u+x 1.py

    将目前目录下的所有文件与子目录皆设为任何人可读取 :

    chmod -R a+r *

    此外chmod也可以用数字来表示权限如 :

    chmod 777 file

    语法为:

    chmod abc file

    linux中chmod权限的用法

    chmod ABC file

    其中A、B、C各为一个数字,分别表示User、Group、及Other的权限。

    A、B、C这三个数字如果各自转换成由“0”、“1”组成的二进制数,则二进制数的每一位分别代表一个角色的读、写、运行的权限。比如User组的权限A:

    如果可读、可写、可运行,就表示为二进制的111,转换成十进制就是7。

    如果可读、可写、不可运行,就表示为二进制的110,转换成十进制就是6。

    如果可读、不可写、可运行,就表示为二进制的101,转换成十进制就是5。

    一些人说的“4=r,2=w,1=x”的意思是:

    为不同的角色分配不同的权限,放在一起,就出现 777、677这样的数字了。

    你也可以用 chmod u+x  file  的方式为User组添加运行权限。

    指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。 参数 : mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中 u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。 -c : 若该档案权限确实已经更改,才显示其更改动作 -f : 若该档案权限无法被更改也不要显示错误讯息 -v : 显示权限变更的详细资料 -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) --help : 显示辅助说明 --version : 显示版本 范例 :将档案 file1.txt 设为所有人皆可读取 : chmod ugo+r file1.txt  将档案 file1.txt 设为所有人皆可读取 : chmod a+r file1.txt  将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 : chmod ug+w,o-w file1.txt file2.txt  将 ex1.py 设定为只有该档案拥有者可以执行 : chmod u+x ex1.py  将目前目录下的所有档案与子目录皆设为任何人可读取 : chmod -R a+r *  此外chmod也可以用数字来表示权限如 chmod 777 file 语法为:chmod abc file 其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 r=4,w=2,x=1 若要rwx属性则4+2+1=7; 若要rw-属性则4+2=6; 若要r-x属性则4+1=7。 范例: chmod a=rwx file  和 chmod 777 file  效果相同 chmod ug=rwx,o=x file  和 chmod 771 file  效果相同 若用chmod 4755 filename可使此程序具有root的权限.

    指令名称 : chown  使用权限 : root  使用方式 : chmod [-cfhvR] [--help] [--version] user[] file...  说 明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由 系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才 有这样的权限。  把计 :  user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群 体(group)-c : 若该档案拥有者确实已经更改,才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结 (link)进行变更,而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者 变更(即以递回的方式逐个变更)--help : 显示辅助说明--version : 显示版本  范例 :  将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :  chown jessie:users file1.txt  将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :  chmod -R lamport:users *  -rw------- (600) -- 只有属主有读写权限。  -rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。  -rwx------ (700) -- 只有属主有读、写、执行权限。  -rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。  -rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。  -rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。  -rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。  以下是对目录的两个普通设定:  drwx------ (700) - 只有属主可在目录中读、写。  drwxr-xr-x (755) - 所有用户可读该目录,但只有属主才能改变目录中的内容。

    --------------------------------------------------------------------------

    运行 .sh 文件类型的文件:用file命令测试一下看是什么类型的file xxxx.sh如果是Bourne-Again shell script 可以sh xxxx.sh 或者chmod +x xxxx.sh 再./xxx.sh一般 .sh 的直接添加x(可执行属性) chmod +x xxx.sh 然后./xxx.sh就可以了chmod是一个改变用户拥有指定文件的权限的命令.r:只读,w:写,x执行.也可以用数字

    --------------------------------------------------------------------------

    展开全文
  • 有很多新手误操作 chmod -R 777,导致系统中的大部分服务以及命令无法正常使用。新睿云为大家整理了3种chmod -R 777的补救办法,还有linux chmod命令的详解。chmod命令可以改变权限目录和文件权限,-R是目录下所有...

    有很多新手误操作 chmod -R 777,导致系统中的大部分服务以及命令无法正常使用。新睿云为大家整理了3种chmod -R 777的补救办法,还有linux chmod命令的详解。

    chmod命令可以改变权限目录和文件权限,-R是目录下所有文件,777是高权限(读、写、执行),

    chmod -R 777 意思就是将当前目录及目录下所有文件都给予777权限

    这个在服务器里不能随便敲的,不能在根目录下进行此命令,因为有些进程是指定权限(如755、700...)才能运行的...所以会出错

    一、chmod -R 777补救办法

    1、chmod -R 777补救办法1——根目录执行chmod -R 777 / 的补救方法

    ch /etc/

    chmod 644 passwd group shadow

    chmod 400 gshadow

    cd ssh

    chmod 600 moduli ssh_host_dsa_key ssh_host_key ssh_host_rsa_key

    chmod 644 ssh_config ssh_host_dsa_key.pub ssh_host_key.pub ssh_host_rsa_key.pub

    chmod 640 ssh_config

    然后尝试使用ssh登录,正常。

    如果使用普通用户登录,使用su - 切换root会出现以下错误:

    root "su cannot set groups"

    这是因为su必须有s权限才能预读取root的相关配置,需要使用如下命令:

    chmod u+x `which su`

    然后就可以进入系统了。

    找一台干净的机器,把系统的权限导出,然后在导入本机

    在干净的机器上执行:getfacl -R / > ./linux.chmod.bak

    在本机上执行:setfacl --restore=/root/linux.chmod.bak

    重启服务器使权限生效

    2、chmod -R 777补救办法2——执行chmod -R 777 / 补救

    执行后千万不要退出当前窗口!!!

    在自己的虚拟机上设置某个站的权限的时候,原来应该是chmod -R 777 ./* 结果少按了个点,执行了chmod -R 777 /* 因为执行时间超出自己的预想范围赶紧按下CTRL+C,可惜晚了,看下了/etc目录下的东西,全部都是777状态,立马开另一个终端尝试登陆,已经登录不上了!

    原先执行的窗口还可以操作,于是找资料看看有没有解决方法,要是在机房生产机犯这样低级的错误,总不能重装吧。linux没这么脆弱。

    ssh登录不上,应该跟passwd、group、shadow、ssh这几个文件扯上关系而已,开了另一台linux查看权限,并在错误的机器上修改成对应的权限:

    cd /etc

    chmod 644 passwd group shadow

    chmod 400 gshadow

    cd ssh

    chmod 600 moduli ssh_host_dsa_key ssh_host_key ssh_host_rsa_key

    chmod 644 ssh_config ssh_host_dsa_key.pub ssh_host_key.pub ssh_host_rsa_key.pub

    chmod 640 sshd_config

    chmod 700 /var/empty/sshd

    然后尝试ssh登录,ok正常,不过没办法切换成root用户

    su -

    root “su: cannot set groups: "

    因为su必须有s权限才能预读取root的相关配置:

    chmod u+s `which su`

    完成之后就可以进去系统慢慢折腾了。

    找一台linux系统(尽量越干净越好),把系统的权限导出,然后再导入到本机。

    在好的机器上执行

    getfacl -R / > ./linux.chmod.bak

    然后通过ftp或者rz命令上传到要修复的机子上

    执行:

    setfacl --restore=/root/linux.chmod.bak

    执行这个后需要重启机器才会替换权限(真够麻烦,要是线上机器怎么可以随便重启,实际上这个时候机器是可以正常访问,只是安全方面没保证)

    执行前,写个脚本让它在开机后执行,万一替换的脚本有问题,至少还能登录ssh。没错,就是把上面的命令写成脚本放在放在rc.local里面延迟执行。我放在/root/下

    cat sshtmp.sh

    #----------start----------

    #!/bin/bash

    sleep 300

    cd /etc

    chmod 644 passwd group shadow

    chmod 400 gshadow

    cd ssh

    chmod 600 moduli ssh_host_dsa_key ssh_host_key ssh_host_rsa_key

    chmod 644 ssh_config ssh_host_dsa_key.pub ssh_host_key.pub ssh_host_rsa_key.pub

    chmod 640 sshd_config

    chmod 700 /var/empty/sshd

    chmod u+s `which su`

    #-----------------end----------

    放到开机启动

    echo '/root/sh/sshtmp.sh &' >>/etc/rc.local

    然后reboot 吧。

    重启后如果能正常登录系统,可以先把sshtmp.sh 的进程kill掉,并去掉/etc/rc.local里面脚本。然后查看权限有没有正常。

    3、chmod -R 777补救办法3——Ubuntu 执行chmod -R 777 / 挽救方法

    怎么会有堪比rm -rf /*这样神奇的命令,本想着把当前目录下的权限改为777,没想到把整个/目录下全设成777了,直觉告诉我好像哪里有些不对劲,好在一顿折腾最终弄好了,应该没啥大问题,嗯目前是这样,能够正常使用。

    具体做法就是拿一个启动盘(不是重装系统,虽然重装是网上大多数的建议,我当时也差点重装,不过抱着侥幸的心理试了试结果就好了),进入启动盘点击Try Ubuntu然后进入界面,打开Terminal,一般会自动挂载物理机上所有的分区,找到损坏系统的/目录然后再终端打开(昨天光顾着修复了,也没留个图做个纪念),然后使用Sudo chmod ...命令将/下所有的目录改为正常系统的权限,巧的是我有一台云服务器(不过不是Ubuntu,是Centos,当时也抱着死马当活马医的心态),并且服务器上也装了可道云(免费版,当然也可以用命令行),按照图中显示的权限,一个一个改就行了,然后我还将/etc/ssh里的文件按照正常系统的权限改了下。

    还执行过这两个命令:

    cd /etc

    chmod 644 passwd group shadow

    chmod 400 gshadow

    其他的就没什么问题了,然后重启就能正常开机了(万幸),其他问题就可以问度娘解决了(反正都能正常进入系统了,其他都不是啥大问题),当然我这方法也不保证能够通用,只是将我的经验分享一下,万一能帮助有需要的你呢。

    二、linux chmod命令的详解

    chmod是一个计算机函数,功能是改变文件的读写许可设置,如果改变成功返回0,否则返回-1,函数原型是int chmod( const char *filename, int pmode );。

    1、Linux chmod命令基础解释

    chmod命令是linux上用于改变权限的命令,用于变更文件或目录的权限。通过修改文件或目录权限可以让指定的人对文件可读、可写、可运行,极大地保证了数据的安全性。在UNIX系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分,另有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。

    ①权限范围的表示法如下:

    u:User,即文件或目录的拥有者。

    g:Group,即文件或目录的所属群组。

    o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。

    a:All,即全部的用户,包含拥有者,所属群组以及其他用户。

    ②有关权限代号的部分,列表于下:

    r:读取权限,数字代号为"4"。

    w:写入权限,数字代号为"2"。

    x:执行或切换权限,数字代号为"1"。

    -:不具任何权限,数字代号为"0"。

    s:当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限。

    ③语法:

    chmod [-cfRv][--help][--version][+/-/=][文件或目录...]

    chmod [-cfRv][--help][--version][数字代号][文件或目录...]

    chmod [-cfRv][--help][--reference=][--version][文件或目录...]

    ④选项说明:

    -c或--changes 效果类似"-v"参数,但仅回报更改的部分。

    -f或--quiet或--silent 不显示错误信息。

    -R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。

    -v或--verbose 显示指令执行过程。

    --help 在线帮助。

    --reference= 把指定文件或目录的权限全部设成和参考文件或目录的权限相同

    --version 显示版本信息。

    + 开启权限范围的文件或目录的该项权限设置。

    - 关闭权限范围的文件或目录的该项权限设置。

    = 指定权限范围的文件或目录的该项权限设置。

    2、Linux chmod命令的常用语法

    命令名称: chmod

    执行权限: 所有用户

    功能描述: 改变文件或目录权限

    语法: 第一种方法 chmod [{ugoa}{+-=}{rwx}] [文件或目录]

    备注: u:所有者 g:所属组 o:其他人 a:所有人

    +:为用户增加权限 -:为用户减少权限 =:为用户赋予权限

    r:读权限 w:写权限 x:执行权限

    语法:第二种方法 chmod -R [mode=421] [文件或目录]←(这种方法用的比较多)

    备注:

    r 代表读,w 代表写,x 代表执行,

    如果可读,权限是二进制的100,十进制是4;

    如果可写,权限是二进制的010,十进制是2;

    如果可运行,权限是二进制的001,十进制是1;

    -R 递归修改(就是将嵌套在很多文件夹中的文件权限修改了,如果没有这个,只能到指定的文 件夹下进行修改)

    具备多个权限,就把相应的 4、2、1 相加就可以了:

    若要 rwx 则 4+2+1=7

    若要 rw- 则 4+2=6

    若要 r-x 则 4+1=5

    若要 r-- 则 =4

    若要 -wx 则 2+1=3

    若要 -w- 则 =2

    若要 --x 则 =1

    若要 --- 则 =0

    范例: chmod 777 /etc/xinruiyun 将xinruiyun这个文件夹权限改为对所有用户可读,可写,可执行

    chmod 775 /etc/zhishiku 将zhishiku这个文件夹权限改为其他用户不可读

    3、linux chmod命令结构详解

    在Linux中输入ll,会出现指定目录下文件/目录的详细信息,本文重点讲解权限部分,也就是下图中红色框中的部分。

    813e62647bd75e807b159a887cd88a2f.png

    chmod命令结构的10个字符

    详解下图:权限一共是10个字符,第1个字符分为1组,后面9个字符分为3组。

    第1个字符有两种情况:如果是“d”则代表这是一个文件夹,如果是“—”代表这是一个文件;

    第2、3、4个字符:这3个字符共同代表的是文件的拥有者,可以用u来表示,拥有四个权限:r:读权限 , w:写权限,x:执行权限,—:无权限;

    第5、6、7个字符:这3个字符代表的是文件所属群组,可以用g来表示,拥有四个权限:r:读权限 , w:写权限,x:执行权限,—:无权限;

    第8、9、10个字符:这3个字符代表的是除拥有者和所属群组之外的其他所有的用户,可以用o来表示,拥有四个权限:r:读权限 , w:写权限,x:执行权限,—:无权限。

    注意:后面9个字符除了u,g,o外,还有一个a,代表了所有用户。

    9b7465303823e74b2d68a9582e5c9548.png

    chmod命令结构详解

    内容由新睿云小编整理的互联网资源。

    展开全文
  • 设置方式: SET位权限可以通过chmod命令设置,给文件加suid和sgid的命令如下(类似于上面chmod赋予一般权限的命令):chmod u+s filename 设置suid位 chmod u-s filename 去掉suid设置 chmod g+s filename 设置sgid位 ...

    阅读目录(Content)权限简介

    • Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。
    • Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
    • Linux下权限的粒度有 拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
    • Linux上通常使用chmod命令对文件的权限进行设置和更改。

    一、快速入门更改文件权限 (chmod命令)一般使用格式
    chmod [可选项] <mode> <file...>
    可选项: -c, --changes like verbose but report only when a change is made (若该档案权限确实已经更改,才显示其更改动作) -f, --silent, --quiet suppress most error messages (若该档案权限无法被更改也不要显示错误讯息) -v, --verbose output a diagnostic for every file processed(显示权限变更的详细资料) --no-preserve-root do not treat '/' specially (the default) --preserve-root fail to operate recursively on '/' --reference=RFILE use RFILE's mode instead of MODE values -R, --recursive change files and directories recursively (以递归的方式对目前目录下的所有档案与子目录进行相同的权限变更) --help 显示此帮助信息 --version 显示版本信息 mode :权限设定字串,详细格式如下: [ugoa...][[+-=][rwxX]...][,...],其中 [ugoa...] u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。 [+-=] + 表示增加权限,- 表示取消权限,= 表示唯一设定权限。 [rwxX] r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。 file... 文件列表(单个或者多个文件、文件夹)
    范例:

    • 设置所有用户可读取文件 a.conf

    chmod ugo+r a.sh 或 chmod a+r a.conf

    • 设置 c.sh 只有 拥有者可以读写及执行

    chmod u+rwx c.sh

    • 设置文件 a.conf 与 b.xml 权限为拥有者与其所属同一个群组 可读写,其它组可读不可写

    chmod a+r,ug+w,o-w a.conf b.xml

    • 设置当前目录下的所有档案与子目录皆设为任何人可读写

    chmod -R a+rw *数字权限使用格式
    在这种使用方式中,首先我们需要了解数字如何表示权限。 首先,我们规定 数字 4 、2 和 1表示读、写、执行权限(具体原因可见下节权限详解内容),即 r=4,w=2,x=1 。此时其他的权限组合也可以用其他的八进制数字表示出来,如: rwx = 4 + 2 + 1 = 7 rw = 4 + 2 = 6 rx = 4 +1 = 5 即
    若要同时设置 rwx (可读写运行) 权限则将该权限位 设置 为 4 + 2 + 1 = 7 若要同时设置 rw- (可读写不可运行)权限则将该权限位 设置 为 4 + 2 = 6 若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置 为 4 +1 = 5
    上面我们提到,每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。即我们可以用用三个8进制数字分别表示 拥有者 、群组 、其它组( u、 g 、o)的权限详情,并用chmod直接加三个8进制数字的方式直接改变文件权限。语法格式为 :
    chmod <abc> file...
    其中 a,b,c各为一个数字,分别代表User、Group、及Other的权限。 相当于简化版的 chmod u=权限,g=权限,o=权限 file... 而此处的权限将用8进制的数字来表示User、Group、及Other的读、写、执行权限
    范例:

    • 设置所有人可以读写及执行

    chmod 777 file (等价于 chmod u=rwx,g=rwx,o=rwx file 或 chmod a=rwx file)

    • 设置拥有者可读写,其他人不可读写执行

    chmod 600 file (等价于 chmod u=rw,g=---,o=--- file 或 chmod u=rw,go-rwx file )更改文件拥有者(chown命令)
    linux/Unix 是多人多工作业系统,每个的文件都有拥有者(所有者),如果我们想变更文件的拥有者(利用 chown 将文件拥有者加以改变),一般只有系统管理员(root)拥有此操作权限,而普通用户则没有权限将自己或者别人的文件的拥有者设置为别人。
    语法格式:
    chown [可选项] user[:group] file...
    使用权限:root 说明: [可选项] : 同上文chmod user : 新的文件拥有者的使用者 group : 新的文件拥有者的使用者群体(group)
    范例:

    • 设置文件 d.key、e.scrt的拥有者设为 users 群体的 tom

    chown tom:users file d.key e.scrt

    • 设置当前目录下与子目录下的所有文件的拥有者为 users 群体的 James

    chown -R James:users *二、Linux权限详解
    Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。这也是Linux有别于Windows的机制,也是基于这个权限机智,Linux可以有效防止病毒自我运行,因为运行的条件是必须要有运行的权限,而这个权限在Linux是用户所赋予的。
    Linux的文件权限有以下设定:

    • Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
    • Linux下权限的属组有 拥有者 、群组 、其它组 三种。每个文件都可以针对这三个属组(粒度),设置不同的rwx(读写执行)权限。
    • 通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。

    如果我们要表示一个文件的所有权限详情,有两种方式:

    • 第一种是十位二进制表示法,(三个属组每个使用二进制位,再加一个最高位共十位),可简化为三位八进制形式
    • 另外一种十二位二进制表示法(十二个二进制位),可简化为四位八进制形式

    十位权限表示
    常见的权限表示形式有:
    -rw------- (600) 只有拥有者有读写权限。 -rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。 -rwx------ (700) 只有拥有者有读、写、执行权限。 -rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。 -rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。 -rw-rw-rw- (666) 所有用户都有文件读、写权限。 -rwxrwxrwx (777) 所有用户都有读、写、执行权限。
    后九位解析: 我们知道Linux权限总共有三个属组,这里我们给每个属组使用三个位置来定义三种操作(读、写、执行)权限,合起来则是权限的后九位。 上面我们用字符表示权限,其中 -代表无权限,r代表读权限,w代表写权限,x代表执行权限。
    实际上,后九位每个位置的意义(代表某个属组的某个权限)都是固定的,如果我们将各个位置权限的有无用二进制数 1和 0来代替,则只读、只写、只执行权限,可以用三位二进制数表示为
    r-- = 100 -w- = 010 --x = 001 --- = 000
    转换成八进制数,则为 r=4, w=2, x=1, -=0(这也就是用数字设置权限时为何是4代表读,2代表写,1代表执行)
    实际上,我们可以将所有的权限用二进制形式表现出来,并进一步转变成八进制数字:
    rwx = 111 = 7 rw- = 110 = 6 r-x = 101 = 5 r-- = 100 = 4 -wx = 011 = 3 -w- = 010 = 2 --x = 001 = 1 --- = 000 = 0
    由上可以得出,每个属组的所有的权限都可以用一位八进制数表示,每个数字都代表了不同的权限(权值)。如 最高的权限为是7,代表可读,可写,可执行。
    故 如果我们将每个属组的权限都用八进制数表示,则文件的权限可以表示为三位八进制数
    -rw------- = 600 -rw-rw-rw- = 666 -rwxrwxrwx = 777
    关于第一位最高位的解释: 上面我们说到了权限表示中后九位的含义,剩下的第一位代表的是文件的类型,类型可以是下面几个中的一个:
    d代表的是目录(directroy) -代表的是文件(regular file) s代表的是套字文件(socket) p代表的管道文件(pipe)或命名管道文件(named pipe) l代表的是符号链接文件(symbolic link) b代表的是该文件是面向块的设备文件(block-oriented device file) c代表的是该文件是面向字符的设备文件(charcter-oriented device file)十二位权限(Linux附加权限)附加权限相关概念
    linux除了设置正常的读写操作权限外,还有关于一类设置也是涉及到权限,叫做Linxu附加权限。包括 SET位权限(suid,sgid)和粘滞位权限(sticky)。SET位权限:
    suid/sgid是为了使“没有取得特权用户要完成一项必须要有特权才可以执行的任务”而产生的。 一般用于给可执行的程序或脚本文件进行设置,其中SUID表示对属主用户增加SET位权限,SGID表示对属组内用户增加SET位权限。执行文件被设置了SUID、SGID权限后,任何用户执行该文件时,将获得该文件属主、属组账号对应的身份。在许多环境中,suid 和 sgid 很管用,但是不恰当地使用这些位可能使系统的安全遭到破坏。所以应该尽量避免使用SET位权限程序。(passwd 命令是为数不多的必须使用“suid”的命令之一)。

    • suid(set User ID,set UID)的意思是进程执行一个文件时通常保持进程拥有者的UID。然而,如果设置了可执行文件的suid位,进程就获得了该文件拥有者的UID。
    • sgid(set Group ID,set GID)意思也是一样,只是把上面的进程拥有者改成进程组就好了。

    SET位权限表示形式(10位权限):
    如果一个文件被设置了suid或sgid位,会分别表现在所有者或同组用户的权限的可执行位上;如果文件设置了suid还设置了x(执行)位,则相应的执行位表示为s(小写)。但是,如果没有设置x位,它将表示为S(大写)。如:
    1、-rwsr-xr-x 表示设置了suid,且拥有者有可执行权限 2、-rwSr--r-- 表示suid被设置,但拥有者没有可执行权限 3、-rwxr-sr-x 表示sgid被设置,且群组用户有可执行权限 4、-rw-r-Sr-- 表示sgid被设置,但群组用户没有可执行权限
    设置方式:
    SET位权限可以通过chmod命令设置,给文件加suid和sgid的命令如下(类似于上面chmod赋予一般权限的命令):chmod u+s filename 设置suid位 chmod u-s filename 去掉suid设置 chmod g+s filename 设置sgid位 chmod g-s filename 去掉sgid设置粘滞位权限:
    粘滞位权限即sticky。一般用于为目录设置特殊的附加权限,当目录被设置了粘滞位权限后,即便用户对该目录有写的权限,也不能删除该目录中其他用户的文件数据。设置了粘滞位权限的目录,是用ls查看其属性时,其他用户权限处的x将变为t。 使用chmod命令设置目录权限时,+t、-t权限模式可分别用于添加、移除粘滞位权限。
    粘滞位权限表示形式(10位权限):
    一个文件或目录被设置了粘滞位权限,会表现在其他组用户的权限的可执行位上。如果文件设置了sticky还设置了x(执行)位,其他组用户的权限的可执行位为t(小写)。但是,如果没有设置x位,它将表示为T(大写)。如:
    1、-rwsr-xr-t 表示设置了粘滞位且其他用户组有可执行权限 2、-rwSr--r-T 表示设置了粘滞位但其他用户组没有可执行权限
    设置方式:
    sticky权限同样可以通过chmod命令设置:
    chmod +t <文件列表..>十二位的权限表示方法
    附加权限除了用十位权限形式表示外,还可以用用十二位字符表示。
    11 10 9 8 7 6 5 4 3 2 1 0 S G T r w x r w x r w x
    SGT分别表示SUID权限、SGID权限、和 粘滞位权限,这十二位分别对应关系如下:
    第11位为SUID位,第10位为SGID位,第9位为sticky位,第8-0位对应于上面的三组rwx位(后九位)。
    在这十二位的每一位上都置值。如果有相应的权限则为1, 没有此权限则为0。
    -rw-r-sr-- 的值为: 0 1 0 1 1 0 1 0 0 1 0 0 -rwsr-xr-x 的值为: 1 0 0 1 1 1 1 0 1 1 0 1 -rwsr-sr-x 的值为: 1 1 0 1 1 1 1 0 1 1 0 1 -rwsr-sr-t 的值为: 1 1 1 1 1 1 1 0 1 1 0 1
    如果将则前三位SGT也转换成一个二进制数,则

    • suid 的八进制数字是4
    • sgid 的代表数字是 2
    • sticky 位代表数字是1

    这样我们就可以将十二位权限三位三位的转化为4个八进制数。其中

    • 最高的一位八进制数就是suid,sgdi,sticky的权值。
    • 第二位为 拥有者的权值
    • 第三位为 所属组的权值
    • 最后一位为 其他组的权值

    附加权限的八进制形式
    通过上面,我们知道,正常权限和附加权限可以用4位八进制数表示。类似于正常权限的数字权限赋值模式(使用三位八进制数字赋值)
    chmod <abc> file...
    我们可以进一步使用4位八进制数字同时赋值正常权限和附加权限。
    chmod <sabc> file...
    其中s是表示附加权限的把八进制数字,abc与之前一致,分别是对应User、Group、及Other(拥有者、群组、其他组)的权限。因为SUID对应八进制数字是4,SGID对于八进制数字是2,则“4755”表示设置SUID权限,“6755”表示同时设置SUID、SGID权限。
    我们进一步将上小节的例子中的二进制数转变为八进制表示形式,则
    -rw-r-sr-- = 0 1 0 1 1 0 1 0 0 1 0 0 = 2644 -rwsr-xr-x = 1 0 0 1 1 1 1 0 1 1 0 1 = 4755 -rwsr-sr-x = 1 1 0 1 1 1 1 0 1 1 0 1 = 6755 -rwsr-sr-t = 1 1 1 1 1 1 1 0 1 1 0 1 = 7755
    对比范例:

    • 设置 netlogin 的权限为拥有者可读写执行,群组和其他权限为可读可执行

    chmod 755 netlogin

    • 设置 netlogin 的权限为拥有者可读写执行,群组和其他权限为可读可执行,并且设置suid

    chmod 4755 netlogin
    chmod 4755与chmod 755对比多了附加权限值4,这个4表示其他用户执行文件时,具有与所有者同样的权限(设置了SUID)。
    为什么要设置4755 而不是 755?
    假设netlogin是root用户创建的一个上网认证程序,如果其他用户要上网也要用到这个程序,那就需要root用户运行chmod 755 netlogin命令使其他用户也能运行netlogin。但假如netlogin执行时需要访问一些只有root用户才有权访问的文件,那么其他用户执行netlogin时可能因为权限不够还是不能上网。这种情况下,就可以用 chmod 4755 netlogin 设置其他用户在执行netlogin也有root用户的权限,从而顺利上网。
    在 Linux 命令中,chmod用于修改文件或者目录的权限。对于文件或者目录的普通权限,共有 3 种,分别为:

    • r:读取;
    • w:写入;
    • x:执行。

    此外,还有 3 种特殊权限,分别为:

    • suid:Set User ID;
    • sgid:Set Group ID;
    • sticky:粘滞位。

    在此,我们仅介绍如何利用chmod修改文件及目录的普通权限。权限范围及代号
    文件及目录的权限范围,包括:

    • u:User,即文件或目录的拥有者;
    • g:Group,即文件或目录的所属群组;
    • o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
    • a:All,即全部的用户,包含拥有者、所属群组以及其他用户。

    权限的代号包括:

    • r:读取权限,数字代号为4
    • w:写入权限,数字代号为2
    • x:执行或切换权限,数字代号为1
    • -:不具任何权限,数字代号为0
    • s:当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限。

    语法及选项说明

    • chmod语法:
      • chmod [-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...]
      • chmod [-cfRv][--help][--version][数字代号][文件或目录...]
      • chmod [-cfRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
    • 选项说明:
      • -c--changes:效果类似-v参数,但仅返回更改的部分;
      • -f--quiet--silent:不显示错误信息;
      • -R--recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
      • -v--verbose:显示指令执行过程;
      • --help:显示在线帮助信息;
      • --reference=<参考文件或目录>:把指定文件或目录的权限全部设成和参考文件或目录的权限相同;
      • --version:显示版本信息;
      • <权限范围>+<权限设置>:开启权限范围的文件或目录的该项权限设置;
      • <权限范围>-<权限设置>:关闭权限范围的文件或目录的该项权限设置;
      • <权限范围>=<权限设置>:指定权限范围的文件或目录的该项权限设置。

    示例
    首先,我们通过ls -l命令来看看文件及目录的相关信息:

    bc99ebe4435726d4751d17220cd6d54d.png


    如上图所示,以其为例,我们依次来分析各内容代表的含义,

    • 第 1 行:total 16,表示所列出内容的磁盘占用空间总和值,单位为KB
    • 第 1 列:dr-xr-x-r-x,表示文件或目录的类型及权限;
    • 第 2 列: 4,表示文件或目录的链接个数;
    • 第 3 列:bin.guo,表示文件或目录的所有者;
    • 第 4 列:staff,表示文件或目录的所在群组;
    • 第 5 列:136,表示文件或目录本身的大小;
    • 第 6 列:Nov 24 11:26,表示文件或目录的最后更新时间;
    • 第 7 列:a,表示文件或目录的名称。

    其中 第 1 列 的内容(除total外)特别丰富,以dr-xr-x-r-x为例(共 10 个字符),我们对其进一步分析:

    • 第 1 个字符d,表示文件或目录的类型,其类型包括
      • p,表示命名管道文件;
      • d,表示目录文件;
      • l,表示符号连接文件;
      • -,表示普通文件;
      • s,表示 Socket 文件;
      • c,表示字符设备文件;
      • b,表示块设备文件。
    • 第 2 ~ 4 个字符r-x,表示文件或目录的所有者权限;
    • 第 5 ~ 7 个字符r-x,表示文件或目录的所有者同组用户权限;
    • 第 8 ~ 10 个字符r-x,表示文件或目录的其他用户权限。

    此外,大家可能还注意到有些文件或目录在其显示的权限后面还跟着一个字符,或者为.或者为@,具体:

    • 在 Mac 终端中显示为@
    • 在 Linux 系统中显示为.

    这表示其所属的文件或目录开启了SELinux安全上下文标签,如果没有,则表示未开启。
    接下来,演示一些具体的操作示例:

    • 示例 1:添加所有用户对test-one的执行权限

    240ecba644ba86293be09a49b323c43e.png
    • 示例 2:取消test-one所有者群组用户的执行权限及其他用户的写入权限

    1845d9a600f968ad68ae79f2da59c01a.png
    • 示例 3:递归取消文件夹a的所有用户的执行权限

    59ee4a8d65987f9b66c2702023e77a03.png
    • 示例 4:添加所有用户对test-one的所有权限

    23157a5ddf4379c4a2fd318811b5cd61.png
    • 示例 5:取消test-one所有者的执行权限及其他用户的所有权限

    c6e96656e74005373939824b78bd918e.png


    在 Linux 的众多命令中,chmod命令算是比较简单的一个了。以此为始,让我们一起感受 Linux 的魅力吧!
    转自:https://blog.csdn.net/u013197629/article/details/73608613https://blog.csdn.net/qq_35246620/article/details/78624256

    展开全文
  • chmod 命令

    2021-06-10 03:04:26
    每天一个linux命令(27):linux chmod命令chmod命令用于改变linux系统文件或目录的访问权限.用它控制文件或目录的访问权限.该命令有两种用法.一种是包含字母和操作符表达式的文字设定法:另一种是包含数字的数字设定法...
  • 在unix以及linux之中,chmod命令用来改变文件以及目录的权限。这是unix和linux用户所必须熟知众多基本的命令之一。在这个unix命令的教程之中,我们将会学习到如何使用chmod命令来改变文件的权限,在unix之中文件权限...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 662,396
精华内容 264,958
关键字:

chmod

友情链接: BUCK1.zip