目录
命令解释器--shell
type命令
语法
常用选项
alias命令
用alias命令添加别名(只在当前生效,重启shell后失效)
用vim编辑持续生效别名(重启不失效)
alias优先级:临时>用户>全局
history命令
更改history记录命令条数(默认1000条)
Linux用户和工作组
用户
工作组
用户账号文件
id 命令
用户密码文件
工作组账号文件
用户管理
添加新用户
修改账户信息
账号设置密码(Linux的账户必须设置密码后,才能登录系统)
删除账号
工作组管理
创建工作组
添加/删除组成员
users命令
lastlog命令
w命令
who命令
Linux文件系统权限
文件权限构成
chmod命令
chown命令
特殊权限
命令解释器--shell
Shell 是操作系统的命令解释器,介于用户和内核(Kernel)之间的中间层程序。
核心作用:接收用户输入的命令,翻译交给内核执行,再把执行结果返回给用户。
- 内置命令(cd、echo、exit):Shell 自身自带,直接执行(效率更高)
- 外部命令(ls、cat、python):去
PATH环境变量路径搜索可执行文件
type命令
type是shell 内置命令,用来判断一个命令的类型: 区分:内置命令 / 外置命令 / 别名 / 函数 / 关键字。
语法
type [选项] 命令名常用选项
-t:只输出类型(简洁) 返回值:alias/builtin(内置)/file/keyword/function-a:显示所有同名命令(包含 PATH 全部路径、别名)-p:只显示外部命令的完整路径,内置命令无输出-f:不查找 shell 函数
alias命令
alias用来给长命令起简短别名,简化输入,仅当前 Shell 会话生效,写入配置文件可永久生效。- alias别名='原命令-参数'
用alias命令添加别名(只在当前生效,重启shell后失效)
- 去掉添加的别名用unalias
用vim编辑持续生效别名(重启不失效)
- 将别名命令写入到~/.bashrc(当前登录单个用户)和/etc/bashrc(服务器所有用户)文件中
- vim .bashrc /vim /etc/bashrc
- source .bashrc /source /etc/bashrc
alias优先级:临时>用户>全局
history命令
- 作用:查阅命令历史记录
- number:显示最近number条命令历史(history 5 表示显示5条命令历史)
- -c:清空当前历史命令
- !N(执行历史中第N条命令,例如!5)
更改history记录命令条数(默认1000条)
- vim /etc/profile
Linux用户和工作组
用户
- 超级账户——账户名为root,它具有一切权限,只有进行系统维护(例如:建立用户等)或其他必要情 形下才用超级用户登录,以避免系统出现安全问题。
- 系统账户——是Linux系统正常工作所必需的账户,主要为了满足相应的系统进程对文件属主的要求 而建立的,如:bin、daemon、adm、sshd等,注意:系统账户不能登录。
- 普通用户——是为了让使用者能够使用Linux系统资源而建立的,大多数用户属于此类。
工作组
- 基本组(私有组):新建立账户时,若没有指定账户所属的工作组,会建立和账户名相同的组扩展组(公有组):可以容纳多个用户,组中的账户都具有组所拥有的权利。用户账号文件/etc/passwd用户密码文件/etc/shadow工作组账号文件/etc/group工作组密码文件/etc/gshadow
用户账号文件
/etc/passwd是一个文本文件,用于定义系统的账号,由于所有账户都对passwd有读权限,所以该文件中只定义用户账号,而不保存口令。- /etc/passwd文件中字段说明
- 由7个字段组成,字段之间用“:”分隔,意义:账号名:密码:UID:GID:个人资料:主目录:Shell
- 账号名:用户登录Linux系统时使用的名称。
- 密码:以前是以加密格式保存密码的位置,现在密码保存在/etc/shadow文件中,此处只是密
- 码占位符“x”或“*”。若为“x”,说明密码经过了shadow的保护。
- UID:账户的ID值,是一个数字标识,相当于账户的“身份证编号”,具有唯一性
- root账户UID——0
- 系统账户的UID——1~999
- 普通账户的UID——≥1000
- 注意:普通账户从1000开始编号,连续编号,即使系统管理员某些账户号码未使用,普
- 通账户也不可使用
- GID:基本组的ID值,用来区分不同的工作组,相同的组具有相同的GID。
- 个人资料:注释信息,可以记录账户的完整姓名、地址、办公室电话、家庭电话等个人信息。
- 家目录:类似Windows的个人目录,通常是/home/账户名
- Shell:定义用户登录后激活的Shell,默认是Bash Shell
id命令
用户密码文件
- /etc/shadow存储密码加密后的密文,又称为“影子文件”,该文件为了保证了账户密码的安全性只有root账户拥有读权限,注意:若该文件权限发生变化,需要留心恶意攻击
- /etc/shadow文件中的每行9个字段的含义为:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
工作组账号文件
- /etc/group文件存储每个组工作组信息
用户管理
添加新用户
- useradd-参数 账户名
- -c注释信息:设置相关的说明信息,如,:真实姓名、邮箱地址等。-d:目录:设定账户的家目录(默认为/home/用户名)。-eYYYY-MM-DD:设置用户的失效日期,此日期后将不能使用该账号。-f天数:指定密码到期后多少天账号被禁用,若指定为0,则表示账号到期后被立即禁用;若指定 为-1,则表示账号过期后不被禁用(即密码永不过期)。-g组名或GID号:为账户指定所属的基本组,该组在指定时必须已存在。-G:组名或GID号列表:为账户指定所属的扩展组,各组在指定时已存在,附加组可以有多个,组之间用“,”分隔。-M:不创建账户家目录。-N:不创建与账户名同名的基本组。-p:密码:指定账户的登录密码。-sshell名:指定账户登录后使用的Shell,默认是bash。-u用户号:设置账号的UID,默认是已有账户的最大UID加1。如果同时有-o选项,则可以重复使用其他用户的标识号。
- 新建账户test2,查看配置文件
- 新建账户test3,指定UID为2001、登录Shell为/bin/bash,账号永不过期
- 新建用于访问FTP的test4账户,禁止其登录且不创建家目录
修改账户信息
- usermod-参数 账户名
- -l新账户名:更改账户的名称,必须在该用户未登录的情况下才能使用-L:锁定(暂停)用户账户,使其不能登录使用-U:解锁用户账户将用户test2的名称修改为TEST2,并暂停使用该账号
账号设置密码(Linux的账户必须设置密码后,才能登录系统)
- passwd-参数 账户名
删除账号
- userdel账户名
- 账户切换
- su账户名 /su- 账户名
- su切换方式加载的文件:~/.bashrc,/etc/bashrcsu -切换方式加载的文件:/etc/bashrc,/etc/profile,~/.bashrc,~/.bash_profile注意:su -相当于重新建立环境,若全局变量需要继续使用则不能使用su -命令
- 从root用户切换到任何用户不需要密码验证,而从普通用户到root或其他普通用户均需要输入目标用户的密码且验证成功后才可切换。
工作组管理
创建工作组
- groupadd-参数 工作组名
- 修改工作组
- groupmod-参数 工作组名
添加/删除组成员
- gpasswd-参数 账户 工作组
- -r:删除组密码-a:把用户加入组-d:把用户从组中删除。-M:可同时添加多个用户-A:给组指派管理员
- 删除工作组
- groupdel工作组名
- 被删除的组若是基本组,则必须先删除引用该基本组的用户,然后再删除该基本组
users命令
- 查看当前登录系统的用户
lastlog命令
- 查看每个账号的最近登录时间,该命令会读取/var/log/lastlog文件
w命令
- 显示登录到系统的用户信息
who命令
- 显示目前登录到系统的用户,会从/var/run/utmp文件来获取信息
Linux文件系统权限
文件权限构成
- owner:所有者,缩写ugroup:所属组,缩写gother:其他人,缩写o
chmod命令
- 修改文件或目录的权限
- -R:递归修改指定目录下所有文件、子目录的权限ugoa:表示权限设置所针对的用户类别,可以是其中字母中的一个或组合,u(user)表示文件或目录的属主(所有者);g(group)表示属组内的用户;o(others)表示其他用户;a(all)表示所有用户(即u+g+o)+或-或=:表示设置权限的操作动作,+代表添加;-代表取消;=表示只赋予给定的权限,并取消原有的权限。rwx:用字符形式表示的所设置的权限,可以是其中一个字母或组合nnn:用数字表示的权限
chown命令
- 修改文件或目录的所有者和属组
特殊权限
- 概述
- 在Linux系统中,用户对文件或目录的访问权限除了r、w、x三种一般权限外,还有SET
- UID(SUID)、SET GID(SGID)、Sticky Bit(粘滞位)三种特殊权限,用于对文件或目录进行更加灵活方便的访问控制。