Linux权限管理

一、ls -l命令详解

首先我们来看一个示例:

LirenAiYmdeMac-mini:~ lirenaiym$ ls -l
total 2
-rw-r--r--   1 lirenaiym  staff    26 10  5 00:19 1.txt
drwxr-xr-x  17 lirenaiym  staff   578  9 16 16:34 Codes
  1. 前10位
    • 第一位,-表示一个文件,d表明是一个文件夹,l表示一个链接。一般最常见的当然是-
    • 后面9位,3位一组,分别代表所属用户,所属组,组外用户。文件所属组默认为所属用户所属组。但是当我们改变所属用户时,文件所属组并不会改变,这里要注意
    • 如果当前用户不是所属用户,那么不论有多大的权限都不能获得所属用户的权限。只能通过chmod更改组外用户的权限,或者使用chown更改所属用户
    • 关于组的概念暂时不用深究,但一般来说普通用户和管理员肯定不在一个组
  2. 第2个字符串以后,分别是文件数,所属用户,所属组,大小,最后更改时间,文件名
    • 这里要说的是,ls -l返回的是一个详细信息列表,是不带列名的。所以这个信息顺序要记下来
  3. chmod建议使用u, g, o, a以及+, -, =来对文件更改权限,如果要同时设定多条规则可以用逗号隔开,但是逗号后面不能有空格。如:chmod u=rw,g=r 1.txt。不要使用粗暴的数字,这会对-R递归更改带来不便

二、加载命令的顺序

Linux有一个说法叫一切皆文件,当我们输入一个命令时一般来说是指向一个同名文件。系统会按照这个顺序去查找:alias --> $PATH --> 当前目录

三、更改用户变量

一般来说我们没理由去动系统变量,但我们很可能需要增加环境变量以及别名。

  • 查看环境变量和别名:指令分别是echo $PATH和alias

  • 更改环境变量和别名:

    # 防止文件本来就没有,因为用TextEdit打开不会像vim那样默认先touch
    touch ~/.bashrc
    open -e ~/.bashrc
    # 更改环境变量。因为用户变量的行为就是全局变量,所以大写
    export JAVA_HOME=/home/baili/software/jdk1.8.0_101
    export PATH=$JAVA_HOME/bin:$PATH
    # 更改别名
    alias ll='ls -l'
    # 保存后让环境变量生效
    source ~/.bashrc
    echo $PATH
    alias
    

推荐阅读更多精彩内容