跳转至

时间:2019-01-26 11:39:32

用户和文件系统

Linux 分为两种用户超级管理员(root)和普通用户,超级管理员拥有系统的一切权限,其它用户则拥有分配的权限。

文件或目录会有所属者和所属分组这两个属性,在Linux中文件系统的权限分为三维度, 拥有着、所属组和其它用户,每个维度细分为 读写执行 [rwx] (421),拥有相应权限才能执行对应的操作。

单一文件或目录的最大容许文件名为 255Bytes,以一个 ASCII 英文占用一个 Bytes 来说,则大约可达 255 个字符长度。若是以每个中文字占用 2Bytes 来说, 最大文件名就是大约在 128 个中文字文字。

用户

每个用户可以属于多个群组,创建用户时如果不指定所属组,则会默认创意一个和用户名相同的用户组。当用户属于多个组时,只有有效组的权限才会起作用。

相关命令

  • useradd :添加用户,不指定用户组则默认创意一个和用户名字相同的群组。

    shell useradd -g group_name user_name # 指定用户分组 useradd -u number(>1000) user_name # 指定用户Id(UID) useradd -r user_name # 创建系统用户 useradd -D # 查看命令默认值

  • usermod:修改用户信息

    shell usermod -c "账号说明" user_name usermod ‐g groupname username usermod -l new_name old_name

  • userdel:删除用户。

    shell userdel -r user_name 同时删除用户主目录 * password: 修改或设置用户密码

    shell passwd xiaotian

  • id:查看用户ID和用户的组ID信息

    shell id user_name

  • groups: 查看用户所属分组,第一个是有效组。

  • groupadd:添加分组

    shell groupadd group_name groupadd -g gid group_name

  • groupmod:变更分组信息

    shell groupmod [-g gid] [-n group_name] 群组名

  • groupdel:删除分组

    shell groupdel group_name

  • newgrp: 变更用户的有效组,操作完成之后 exit 切换回原来有效组。

    shell newgrp group_name

  • 用户添加到指定分组

    ```shell

    添加用户

    gpasswd -a user_name group_name

    删除用户

    gpasswd -d user_name group_name ``` * 普通用户密码切换到root用户

    ```shell

    替换文件内容

    root$ visudo User_Alias ADMINS = xiaotian, xiaotian2 ADMINS ALL=(root) /bin/su - xiaotian$ sudo su - ```

文件系统

文件的三个时间:

  • 访问时间:读取文件内容会更新该时间。
  • 状态时间:文件的状态变更之后会更新该时间。
  • 变更时间:文章内容变更会更新该时间。

文件的所属者的权限:

  • 拥有者:创建文件的人的权限。
  • 组:属于组里面的人的权限。
  • 其它:非组里面人的权限

文件属性:

  • d 目录
  • - 正规文件
  • l 链接文件
  • b 设备文件里面的可供储存的周边设备(可随机存取设备)。
  • c 设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。
  • s socket 文件,用于网络数据通信。
  • p 数据输送文件(FIFO, pipe),FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个文件所造成的错误问题。

权限属性:

  • 文件:

    • 读:读取文件内容
    • 写:写数据到文件
    • 执行:执行文件
  • 目录:

    • 读:可以读取目录下文件的列表等
    • 写:
      • 再该目录下创建新文件和目录
      • 删除该目录下已经存在的文件和目录,和对文件拥有的权限没有关系。
      • 重命名该目录下的文件和目录
      • 移动该目录下的文件和目录
    • 执行:
      • 能否进入该文件。

常用命令:

  • ls (list directory contents):列出目录里的内容。

    shell ls -a 显示所有文件包含隐藏文件 ls -A 显示所有文件包含隐藏文件,不显示 . 和 .. ls -l 文件详细属性 ls -h 易读方式 ls -d 当前目录的属性 ls -S 文件大小排序 ls -t 时间排序 ls --full-time 显示完整时间

  • cd (change directory): 切换目录。

    shell cd . cd .. # 切换到上一个工作目录 cd - cd ~ cd ~ user_name

  • pwd (print workign directory):显示当前目录。

    pwd
    # 显示链接的目录
    pwd -P
  • mkdir(make directory):创建目录。

    ```shell mkdir /home/test/sun/

    父目录不存在自动创建父目录,存在的话也不报错

    mkdir -p /home/test/sun/

    指定目录权限

    mkdir -m 711 /home/test/sun/ ```

  • rmdir (remove directory) 删除空目录。

    ```shell rmdir /home/test/sun/

    删除上级空目录

    rmdir -p /home/test/sun/ ```

  • rm (rmove) 删除文件或文件夹

    shell rm file_name rm -r directory rm -f file_name

  • cp(copy):复制文件。

    shell cp -r directory cp file directory/ cp -a file direcctory # 同时复制文件创建时间等 cp -l file directory # 文件复制 cp -s file directory # 链接复制 cp -u # 当文件比目标文件新时才复制

  • mv (movie):移动文件。

    shell mv -f # 强制覆盖不询问 mv -u # 比较时间,当目标价文件比较旧时才复制 mv bashrc1 bashrc2 mvtest2

  • basename: 获取文件名。

  • dirname :获取路径名。
  • cat:(Concatenate)正序输出文件内容

    shell cat -n # 显示行号 cat -nb # 空白行不计算行数 cat -A # 显示特殊字符

  • tac: 倒着输出文件内容。

  • less:一页一页显示文件内容,前后翻页
  • more: 一页一页显示文件内容,向后翻页。
  • tail: 后几行。

    shell tail -n number # 显示后number行 tail -n +number # 显示第number行之后的行

  • head:前几行。

    shell head -n numer # 显示前number行 head -n -number # 显示倒数第numbe行前面的内容

  • od: 以二进制方式浏览文件内容。

  • nl:添加行号打印。

    shell -b :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n); -b t :如果有空行,空的那一行不要列出行号(默认值); -n :列出行号表示的方法,主要有三种: -n ln :行号在屏幕的最左方显示; -n rn :行号在自己字段的最右方显示,且不加 0 ; -n rz :行号在自己字段的最右方显示,且加 0 ;(005) -w :行号字段的占用的字符数。

  • touch: 修改文件更新时间或创建文件

    shell touch -a # 修改访问时间 touch -m # 修改变更时间 * chgrp:(change group) 改变文件分组

    shell chgrp xiaotian 123.txt # 改变所属分组为 xiaotian chgrp -R directory # 递归操作,改变文件加下所有文件的所属分组

  • chown:(change owner) 改变文件拥有者

    shell chown xiaotian 123.txt #改变文件拥有着 chown xiaotain:xiaotian #改变文件所属组和拥有者 * chmod:改变文件权限,(rwx 421)。

    shell chmod -R directory chmod [ugo][+-=][rwx] chmod u=rwx,go=r xiaotian.txt