shell,Linux用户和工作组,以及Linux文件系统·权限

📅 2026/7/13 15:24:23
shell,Linux用户和工作组,以及Linux文件系统·权限
目录命令解释器--shelltype命令语法常用选项alias命令用alias命令添加别名只在当前生效重启shell后失效用vim编辑持续生效别名重启不失效alias优先级临时用户全局history命令更改history记录命令条数默认1000条Linux用户和工作组用户工作组用户账号文件id 命令用户密码文件工作组账号文件用户管理添加新用户修改账户信息账号设置密码(Linux的账户必须设置密码后才能登录系统)删除账号工作组管理创建工作组添加/删除组成员users命令lastlog命令w命令who命令Linux文件系统权限文件权限构成chmod命令chown命令特殊权限命令解释器--shellShell 是操作系统的命令解释器介于用户和内核Kernel之间的中间层程序。核心作用接收用户输入的命令翻译交给内核执行再把执行结果返回给用户。内置命令cd、echo、exitShell 自身自带直接执行效率更高外部命令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/bashrcsource .bashrc /source /etc/bashrcalias优先级临时用户全局history命令作用查阅命令历史记录number显示最近number条命令历史history 5 表示显示5条命令历史-c清空当前历史命令N执行历史中第N条命令例如5更改history记录命令条数默认1000条vim /etc/profileLinux用户和工作组用户超级账户——账户名为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——1999普通账户的UID——≥1000注意普通账户从1000开始编号连续编号即使系统管理员某些账户号码未使用普通账户也不可使用GID基本组的ID值用来区分不同的工作组相同的组具有相同的GID。个人资料注释信息可以记录账户的完整姓名、地址、办公室电话、家庭电话等个人信息。家目录类似Windows的个人目录通常是/home/账户名Shell定义用户登录后激活的Shell默认是Bash Shellid命令用户密码文件/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其他人缩写ochmod命令修改文件或目录的权限-R递归修改指定目录下所有文件、子目录的权限ugoa表示权限设置所针对的用户类别可以是其中字母中的一个或组合u(user)表示文件或目录的属主(所有者)g(group)表示属组内的用户o(others)表示其他用户a(all)表示所有用户(即ugo)或-或表示设置权限的操作动作代表添加-代表取消表示只赋予给定的权限并取消原有的权限。rwx用字符形式表示的所设置的权限可以是其中一个字母或组合nnn用数字表示的权限chown命令修改文件或目录的所有者和属组特殊权限概述在Linux系统中用户对文件或目录的访问权限除了r、w、x三种一般权限外还有SETUID(SUID)、SET GID(SGID)、Sticky Bit(粘滞位)三种特殊权限用于对文件或目录进行更加灵活方便的访问控制。