Linux 下的基本操作
Apr 02, 2022权限查看
ls -l
输出的信息是当前路径下的文件和文件夹属性,构成为
权限 所有者 所属组 时间 名称
左边字符串即代表文件/文件夹的权限属性,共10位。第一位表示 “d” 为文件夹,”-“ 为文件。剩余 9 位代表改项对用户所有者、用户组、其他组的权限,每组权限都分为三个 r (read 读),w (write 写),x (execute 执行),且顺序固定为读写执行,若为 “-“ 表示该没有位置的权限,如: “r-x” 表示读和执行权限。再举个完整点的例子,若有 “-rwxr—-x” 表示这个文件的所有者有读写执行权力权限,用户组仅有读的权限,而其他组仅有执行权限。
注意,不同于 Window 下 .exe 后缀表示可执行文件的是,在 Linux 下能否执行完全取决于文件的 x 权限是否被赋予,后缀名并没有其他实际意义(当然后缀名可以便于分辨文件的类型和使用场景)。
用户管理
在介绍命令前,先说明命令操作的系统配置文件,主要的是以下三个
- /etc/passwd
- /etc/shadow
- /etc/group
先介绍各个文件的作用
/etc/passwd

系统的用户都存在这里,每个用户占用一行,格式内容如下
用户名:密码占位:用户ID:用户组ID:备注:Home目录:shell软件路径
/etc/shadow

用户加密后的密码,注意,打开该文件需要管理员权限,否则打开看到是空白的
/etc/group

所有用户组信息,格式如下
组名:密码占位:组ID:组内成员
添加用户,管理密码,变更用户属性用到以下命令
- useradd 添加用户
-d # 新增目录给用户
-m # 若新增目录不存在,创建它
-g # 指定用户组
-G # 指定多个附属的多个用户组,用逗号分隔
-s # 指定用户默认使用的 shell,后跟 shell 的路径
-u # 指定用户 id
-c # 添加备注
最简单用法 useradd name 这个会默认指定一个同名用户目录到 /home/name,但是不会创建。当需要创建用户是带上目录,就只能再创建时用上 -m,如 useradd -d /home/carl -m carl,否则就只能手动创建目录,并修改目录权限。对于未指定 home 路径或 home 路径不存在的用户,登录时会定位到根目录下。
- passwd 新建/修改密码
-d # 删掉用户密码,用户下次登录无需密码,但会造成 ssh 用该账号登录
-l # 锁定密码,账号无法登录,且用户自身无法改变自己密码
-u # 解锁密码,恢复账号可用密码登录
直接接用户名,即修改密码,如 passwd carl。
- userdel 删除用户以及相关文件
-f # 强制删除,即使登陆也会被强制退出
-r # 同时移除用户的 home 目录
- usermod 用户信息修改
大部分参数和 useradd 一致,下面只列举增加的
-l # 修改名称
-a # 添加附属用户组
有时候在使用 useradd name 时会忘了添加用户目录,想用 usermod -d /home/name -m name 补上,其实这样是无效的,该命令只有在新指定的 home 目录和 /etc/pssswd 下的不一致才会生效,useradd name 默认是在 /etc/passwd 配置的就是 /home/name。所以要生效,可以改为 usermod -d /home/name1 name 即可。
更改用户名输入 usermod -l new-name old-name 即可。注意,改名会更改配套的配置,例如用户 home 目录的属性,实际文件夹的名字是没改的。
还有新增的命令 -a,根据之前的命令 useradd -G groupA,groupB carl 设置用户的附属用户组,usermod -G 也能达到相同的效果,但是有时候需要的是在旧的基础上,新增一个组 groupC,就可以使用 usermod -a groupC。
用户组的管理
- groupadd 添加用户组
-g # 指定 id 创建用户组
使用较为简单,groupadd -g 9527 newgroup 新增一个组 id 为 9527,名称是 newgroup
- groupmod 修改用户组
-n # 改名
用法同 usermod
- groupdel 删除用户组
-f # 强制删除,及时是用户的主要组 ???
- newgrp 切换用户组
直接使用 newgrp groupA 切换到所属的其他用户组 groupA
Comments