欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[Linux命令行笔记] Linux权限操作

程序员文章站 2022-05-10 11:03:55
...

一、id: 显示用户身份标识

输出uid、gid、groups等信息,根据系统不同有一定差异

二、文件的权限属性

ls -l 命令输出文件属性,如(-rw-rw-r--),有四个组成部分:
    1、'-' 表示文件类型
        '-' 普通文件
        'd' 目录文件
        'l' 符号链接(软链接)
        'c' 字符设备文件(以字节流处理数据的设备,如终端或调制解调器)
        'b' 块设备文件(以数据块方式处理数据的设备,如硬盘驱动或光盘驱动)
    2、'rw-' 表示所有者权限
        'r' 允许打开和读取文件。如果还设置了执行权限,那么还允许列出目录下的文件
        'w' 允许写入或截短文件,如果也设置了执行权限,那么目录中的文件允许被创建、删除和重命名。能否重命名和删除文件由目录权限决定
        'x' 允许把文件当作程序一样来执行,用脚本语言写的程序文件必须被设置为可读,以便能被执行。允许进入目录,如使用cd命令
    3、'rw-' 表示所有组权限
    4、'r--' 表示其它用户权限

三、chmod: 更改文件的模式

可以使用八进制或者命令符号修改文件的模式
    'u' user 的简写,表示文件或者目录的所有者
    'g' group 的简写,文件所属群组
    'o' others 的简写,表示其它所有用户
    'a' all 的简写,是'u''g''o'三者的组合,即所有用户,是默认选项
    '+' 添加权限
    '-' 删除权限
    '=' 只用指定的权限可用
例:
    u+x 为文件所有者添加可执行权限
    -x 删除所有用户的可执行权限
    go=rw 设置所属群组和其它所有用户只具有可读可写权限

四、umask: 设置文件的默认权限

能够限制创建的文件的权限,使用八进制表示,默认为0002
使用四位八进制的原因(还有特殊的权限):
    setuid位(4000): chmod u+s 程序名 -> 授予程序setuid权限(-rwsr-xr-x)
        该程序将以超级用户的权限来执行,使程序能够访问普通用户禁止访问的文件和目录,慎重使用
    setgid位(2000): chmod g+s 目录 -> 授予目录setgid权限(drwxrwsr-x)
        对文件: 将有效组id从创建者组id修改为改文件所有者的组id
        对目录: 在该目录下新创建的文件将由该目录所在组所有,对公共组下的成员访问共享目录中的文件时很有用
    sticky位(1000): chmod +t 目录 -> 授予目录sticky位权限(drwxrwxrwt)
        Linux中: 忽略文件的sticky位,目录的sticky位当执行用户不是该目录的所有者、文件所有者或超级用户时,将阻止该用户删除或重命名文件

五、su: 以其它用户和组id的身份运行shell

su -l username 选项将使shell以指定用户的运行环境重新加载,工作目录也更改为指定用户的主目录,可简写为 '-'
su -c 'command' 将command在指定shell环境下运行 
exit 返回到之前的shell环境

六、sudo: 以另一个用户的身份来执行命令

sudo -l 查看当前用户被授予哪些权限
一次使用后,一定时间内不需要再次输入密码

七、chown: 更改文件所有者

更改文件或目录的所有者和所属群组,需要超级用户权限
chown [ower][:[group]] file...
    参数实例:
        test        把文件所有者更改为test用户   
        test:test2  把文件所有者更改为test用户,把文件所属组群更改为test2组
        :test2      把文件所属群组更改为test2组,文件所有者不变
        test:       把文件所有者更改为test用户,并把文件所属群组更改为test登录系统时所属的组

八、chgrp: 更改文件所属族群

早期的UNIX的chown不能更改文件所属群组,使用chgrp更改文件所属群组,除了限制多一点外,和chown使用方法基本相同

九、passwd: 更改用户密码

passwd [user] 更改用户的密码,默认为当前用户
相关标签: 权限