一、Linux 文件操作
常用命令
chown (change owner): 修改所属用户与组。
chmod (change mode) : 修改用户的权限。
在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组
实例中,boot 文件的第一个属性用 d 表示。d 在 Linux 中代表该文件是一个目录文件。
1.1 文件类型
在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。
当为 d 则是目录
当为 - 则是文件;
若是 l 则表示为链接文档(link file);
若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
1.2 文件权限
接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。
1.3 更改文件属性
1、chgrp:更改文件属组
语法:
chgrp [-R] 属组名 文件名
参数选项
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上 -R 的参数,那么该目录下的所有文件的属组都会更改。
2、chown:更改文件所有者(owner),也可以同时更改文件所属组。
语法:
chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名
参数选项
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上 -R 的参数,那么该目录下的所有文件的属组都会更改。
3、chmod:设置用户权限
Linux文件属性有两种设置方法,一种是数字,一种是符号。
3.1 数字设置
Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。
r:4
w:2
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx— 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
语法
chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更
将权限变成 -rw xr- xr-- 那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754=xyz
3.2 符号设置
linux身份类型
u(user) :用户
g(group) :组
o(others) :其他
a(all) :全部
如果我们需要将文件权限设置为 -rwxr-xr– ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定
二、Linux 用户和用户组管理
2.1 用户管理
1、添加用户
语法:
useradd 选项 用户名
参数说明:
选项:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组 用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名:
指定新账号的登录名。
2、删除用户
语法:
userdel 选项 用户名
参数说明:
选项:
-r 删除用户在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。
用户名:
指定新账号的登录名。
3、修改用户
语法:
usermod 选项 用户名
参数说明:
选项:
-l 新用户名 这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
用户名:
指定新账号的登录名。
4、口令管理
指定和修改用户口令的Shell命令是passwd。
超级用户(sudo)可以为自己和其他用户指定口令
普通用户 (user) 只能用它修改自己的口令
直接使用passwd不加选项则变为修改口令
语法:
passwd 选项 用户名
参数说明:
选项:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
用户名:
指定新账号的登录名。
语法:
usermod 选项 用户名
参数说明:
选项:
-l 新用户名 这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
用户名:
指定账号的登录名。
2.2 用户组管理
1、添加用户组
语法:
groupadd 选项 用户组
参数说明:
选项:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
用户组:
指定账号的用户组。
2、删除用户组
语法:
groupdel 用户组
参数说明:
用户组:
指定账号的用户组。
3、修改用户组
语法:
groupmod 选项 用户组
参数说明:
选项:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
用户组:
指定账号的用户组。
4、切换用户组
语法:
newgrp 用户组
参数说明:
用户组:
指定账号的用户组。
说明
这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。
2.3 用户账号有关的系统文件
1、/etc/passwd(用户信息)
字段格式
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
参数说明:
"用户名"是代表用户账号的字符串。
"口令"一些系统中,存放着加密后的用户口令字。
"用户标识号"是一个整数,系统内部用它来标识用户。
"组标识号"字段记录的是用户所属的用户组。
"注释性描述"字段记录着用户的一些个人情况。
"主目录"字段记录着用户的起始工作目录。
"登录Shell"用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。
2、/etc/group(用户组信息)
字段格式
组名:口令:组标识号:组内用户列表
参数说明:
"组名"是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
"口令"字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。
"组标识号"与用户标识号类似,也是一个整数,被系统内部用来标识组。
"组内用户列表"是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。
3、添加批量用户
(1)编辑一个文本用户文件。
每一列按照/etc/passwd密码文件的格式书写,要注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留做空白或输入x号。
user001::600:100:user:/home/user001:/bin/bash
user002::601:100:user:/home/user002:/bin/bash
user003::602:100:user:/home/user003:/bin/bash
user004::603:100:user:/home/user004:/bin/bash
user005::604:100:user:/home/user005:/bin/bash
user006::605:100:user:/home/user006:/bin/bash
(2)以root身份执行命令 /usr/sbin/newusers,从刚创建的用户文件user.txt中导入数据,创建用户:
# newusers < user.txt
然后可以执行命令 vipw 或 vi /etc/passwd 检查 /etc/passwd 文件是否已经出现这些用户的数据,并且用户的宿主目录是否已经创建。
(3)执行命令/usr/sbin/pwunconv。
将 /etc/shadow 产生的 shadow 密码解码,然后回写到 /etc/passwd 中,并将/etc/shadow的shadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password 功能。
# pwunconv
(4)编辑每个用户的密码对照文件。
格式为:
用户名:密码
实例文件 passwd.txt 内容:
user001:123456
user002:123456
user003:123456
user004:123456
user005:123456
user006:123456
(5)以 root 身份执行命令 /usr/sbin/chpasswd。
创建用户密码,chpasswd 会将经过 /usr/bin/passwd 命令编码过的密码写入 /etc/passwd 的密码栏。
格式为:
# chpasswd < passwd.txt
实例文件 passwd.txt 内容:
user001:123456
user002:123456
user003:123456
user004:123456
user005:123456
user006:123456
(6)确定密码经编码写入/etc/passwd的密码栏后。
执行命令 /usr/sbin/pwconv 将密码编码为 shadow password,并将结果写入 /etc/shadow。
格式为:
# pwconv