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

一、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] 更改用户的密码,默认为当前用户

你可能感兴趣的:(Linux)