文章目录
通配符的使用
将输出重定向到文件或程序
- > file 重定向stdout 覆盖输出到文件
- >> file 重定向stdout 追加输出到文件
- 2> file 重定向stderr覆盖输出到文件
- 2>>file 重定向stderr 追加输出到 文件
- 2>/dev/null 重定向stderr到/dev/null ,从而丢弃
- >file 2> &1 重定向stdout和stderr 覆盖到同一个文件
- &>file 重定向stdout和stderr 覆盖到同一个文件
- &>> file 重定向stdout和stderr 追加到同一个文件
管道(|) 的使用
- 将第一个命令的标准输出链接到下一个命令的标准输入
- ls -l /usr/bin | less 将ls的输出以分屏的方式输出
- ls | wc -l 统计ls的输出行数
- ls -t | head -n 10 >/tmp/tem-last-changed_files head将输出ls -t 输出内容的前10行,并重定向到一个文件
管道、重定向和tee命令
- 同时输出到终端和文件中
- ls -l | tee /tmp/save-output | less
- ls -t | head -n 10 | tee /tmp/ten-last-change-files
用户
-
用户概念
-
用户作用: 用户账号用于在运行命令的不同人员和程序之间提供安全界限
-
用户类型: 超级用户、系统用户和普通用户
-
超级用户(root): UID=0 完全的访问权限
-
id : 可以显示已登录用户的信息
-
id username 查看其他用户信息
-
ls - l 查看文件所有者
-
ls -ld 查看目录所有者
-
ps -au 查看进程信息
- a选项可以查看与某一终端相关的所有进程
- u选项可以查看进程相关联的用户
-
/etc/passwd
-
存储有关本地用户的信息
-
-
- 该用户的用户名
- 密码曾以加密格式存储在这,现转移到/etc/shadow存储
- UID号
- 该账号的主要组的GID号
- 真实姓名
- 主目录
- 默认shell程序,会在登录时运行(/bin/bash) 如果系统用户不允许交互式登录,该用户可能使用/sbin/nologin
-
用户组
-
组
- 概念: 组是需要共享文件和其他系统资源访问权限的用户的集合,可以对一组用 户授予文件访问权限,实现统一的管理。
-
类型
- 主要组: 定义在/etc/passwd 中的用户组
- 补充组: 定义在/etc/group中用户的组,根据所在组的访问权限,授予用户对文件的访问权限
- 使用id 命令可以用户的主要组和补充组
-
groupadd 创建组
-
使用/etc/login.defs 文件中指定范围内下一个可用GID
-
-g 指定GID
-
-r 使用/etc/login.defs 文件中所列与小系统GID范围内的GID创建组
-
/etc/login.defs 中SYS_GID_MIN 和SYS_GID_MAX 配置定义系统GID范围
-
/etc/group
-
-
- 用户组的名称
- 用户组的密码
- 组ID
- 组成员
-
-
/etc/gshadow
- 组名:组密码:组管理员:组成员
- 默认情况下,组不设置密码
- gpasswd <组名> 设置密码
-
管理用户组
-
新建 groupadd
-
删除 groupdel
-
修改 groupmod [option]
-
groupmod -n group01 group1 修改用户group1 名称为group01 使用 -n 选项修改组名称
groupmod -g 200 group1 ** 使用 -g 选项修改GID
-
-
-
管理组成员
- usermod -g group user 更改用户所在组
- usermod -aG group user 添加到某一补充组
- gpasswd -a user group 将用户添加到组
- gpasswd -d user group 将用户移除组
- gpasswd -G group1 group2 … user 将用户添加到多个组
-
管理组管理员
- gpasswd -A user group 设置用户为组管理员
管理本地用户账户
- 添加用户 useradd username
- useradd --help 显示可用于覆盖默认值的基本选项
- 一些默认值从/etc/login.defs 文件中读取,如有效UID范围和默认密码过期规则,此文件只在创建新用户中使用,对老用户无效
- usermod --help 获取修改用户账户的基本选项
- 删除用户 userdel username 只删除/etc/passwd username的详细信息,不删除用户的主目录(会造成信息泄漏)
- userdel -r username 删除用户信息包括用户主目录
- passwd username 可以为username 设置密码或者修改密码
- UID 范围
- UID 0 分配给超级用户账户root
- UID 1-200 一系列系统用户,有红帽静态分配给系统进程
- UID 201-999 是一系列系统用户,供文件系统没有自己的文件的系统进程使用。通常在安装需要它们的软件时,从可用池中动态分配它们。系统以这些无特权系统用户身份运行,以便限制它们仅访问正常运行所需的资源
- UID 1000+ 是可供分配给普通用户的范围
Linux对文件的权限
-
基本权限
- r w x
-
查看文件和目录的权限及所有权
- ls -l test
- ls -l /home
- ls -ld /home -d可显示有关目录本身而非内容的详细信息
- 第一个字符代表文件类型 - 是常规文件 d是目录 l是软链接 b和c 代表硬件设备 p和s代表其他特殊用途的文件
-
修改文件/目录权限
- chmod whowhatwhich <file/directory>
- who : u g o a(所有)
- what : + - =
- which: r 、w 、x(X)
- chmod u=rwx 1.txt 指定所有者权限为rwx
- chmod 777 1.txt 使用数字加权指定权限
- chmod 0+x 1.txt 添加权限
- chmod -R a=rwx test -R 实现递归设置
- chmod –R a=rwX test test 会变成 rwx,子文件和子目录的执行权限不受影响
-
修改文件所有者和所有组
- chown user <file/directory> 修改文件所有者
- chgrp group <file/directory> 修改文件所有组
- chown tom 1.txt
- chgrp group1 1.txt
- chown tom:group 1.txt
- 只有root用户可以修改文件的所有者;而所有者可以修改文件的所属组
-
特殊权限
-
suid(4) sgid(2) t(1)
+ -
特殊权限会显示在执行权限处。如有执行权限将写作小写的s/t;反之,写作大写的S/T。
-
-
-
默认权限
- 目录是 0777 文档是0666(所有文件都没有执行文件)
- umask的使用 在默认权限的基础上减去 umask 就是新建目录/文件的权限,而不是父目录 权限减 umask。在 /etc/bashrc 中定义的 umask 默认是 0002
- 只有用户 UID 为200以上,并且用户名和主要组名相同,umask 才是 002。如果不满足这些条件, 那么 umask 将变成 022。
- umask 通常还会设置为: 0:其他人将具有对目录和文件的执行权限 027:其他人将没有任何权限,可以确保只有所有者和所属组具有权限
- 修改umask值:在/etc/profile 和/etc/bashrc ,用户可以在.bash_profile 和 .bashrc文件中覆盖系统默认值