文件基本属性
文件属性说明
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
查看文件属性
1 | ls -l |
输出
1 | dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin |
第一个字符 | 属主 | 属组 | 其他用户 |
---|---|---|---|
d 目录 - 文件 l 链接文档(link file) b 装置文件里面的可供储存的接口设备(可随机存取装置) c 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。 |
r 读 w 写 x 执行 |
r 读 w 写 x 执行 |
r 读 w 写 x 执行 |
更改文件属性
功能 | 方法 | ||||
---|---|---|---|---|---|
更改文件属组 | chgrp [-R] 属组名 文件名 -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。 |
||||
更改文件属主 | chown [–R] 属主名 文件名 `chown bin install.log` | ||||
chown [-R] 属主名:属组名 文件名 `chown root:root install.log` | |||||
更改文件属性 | Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。 | ||||
第一种方式 | chmod [-R] xyz 文件或目录 -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更 xyz : 就是刚刚提到的数字类型的权限属性 ` chmod 777 test` |
||||
第二种方式 | u 属主 g 同组 o 其他 a 所有 |
+(加入) -(除去) =(设定) |
r w x |
文件或目录 | |
`chmod u=rwx,g=rx,o=r test` |
文件与目录管理
Linux的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
命令 | 说明 |
---|---|
ls | 列出目录 a: 全部的文件,连同隐藏文件(开头为.的文件) -d :仅列出目录本身,而不是列出目录内的文件数据(常用) -l :长数据串列出,包含文件的属性与权限等等数据;(常用) |
cd | 切换目录 # cd ~ # 表示回到自己的家目录,亦即是 /root 这个目录 |
pwd | 显示目前的目录 -P :显示出确实的路径,而非使用连结 (link) 路径。 |
mkdir | 创建一个新的目录 -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~ -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来! |
rmdir | 删除一个空的目录 -p :连同上一级『空的』目录也一起删除 |
cp | 复制文件或目录 -a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用) -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身; -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次; -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用) -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身; -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用); -r:递归持续复制,用於目录的复制行为;(常用) -s:复制成为符号连结档 (symbolic link),亦即『捷径』文件; -u:若 destination 比 source 旧才升级 destination ! |
rm | 移除文件或目录 -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息; -i :互动模式,在删除前会询问使用者是否动作 -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!! |
mv | 移动文件与目录,或修改文件与目录的名称 -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖; -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖! -u :若目标文件已经存在,且 source 比较新,才会升级 (update) |
用户与用户组
用户管理
命令 | 说明 |
---|---|
useradd | 添加新的用户账号 useradd -s /bin/sh -g group –G adm,root gem useradd 选项 用户名 -c comment 指定一段注释性描述。 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用户组,用户组 指定用户所属的附加组。 -s Shell文件 指定用户的登录Shell。 -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。 |
userdel | 删除帐号 userdel -r sam -r:把用户的主目录一起删除 |
usermod | 修改帐号 usermod -s /bin/ksh -d /home/z –g developer sam usermod 选项 用户名 包括 -c, -d, -m, -g, -G, -s, -u以及-o等 ,这些选项的意义与useradd 命令中的选项一样 |
passwd | 用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。passwd 选项 用户名 -l 锁定口令,即禁用账号。 -u 口令解锁。 -d 使账号无口令。 -f 强迫用户下次登录时修改口令。 |
用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新
命令 | 方法 | ||
---|---|---|---|
groupadd | 增加一个新的用户组 -g GID 指定新用户组的组标识号(GID)。 -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。 |
||
groupdel | 删除一个已有的用户组 | ||
groupmod | 修改用户组的属性 -g GID 为用户组指定新的组标识号。 -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。 -n新用户组 将用户组的名字改为新名字 |
||
newgrp | 如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
|
用户管理文件-/etc/passwd
1 | 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell |
字段 | 说明 |
---|---|
口令 | 虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。 |
用户标识号 | 系统内部用它来标识用户,一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等 |
组标识号 | 记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。 |
注释性描述 | 记录着用户的一些个人情况。例如用户的真实姓名、电话、地址等, |
主目录 | 用户的起始工作目录 |
登陆shell | 用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell |
用户管理文件-/etc/shadow
由于/etc/passwd文件是所有用户都可读的,如果用户的密码太简单或规律比较明显的话,一台普通的计算机就能够很容易地将它破解,因此对安全性要求较高的Linux系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件是/etc/shadow文件。有超级用户才拥有该文件读权限,这就保证了用户密码的安全性。
1 | 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 root:Dnakfw28zf38w:8764:0:168:7::: |
字段 | 说明 |
---|---|
登录名 | 与/etc/passwd文件中的登录名相一致的用户账号 |
口令 | 存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。 |
最后一次修改时间 | 从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中,这个时间起点是1970年1月1日。 |
最小时间间隔 | 是两次修改口令之间所需的最小天数。 |
最大时间间隔 | 口令保持有效的最大天数。 |
警告时间 | 从系统开始警告用户到用户密码正式失效之间的天数。 |
不活动时间 | 用户没有登录活动但账号仍能保持有效的最大天数。 |
失效时间 | 给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。 |
用户组管理文件-/etc/group
每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。
1 | 组名:口令:组标识号:组内用户列表 |
字段 | 说明 |
---|---|
组名 | 用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。 |
口令存 | 用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。 |
组标识号 | 与用户标识号类似,也是一个整数,被系统内部用来标识组。 |
组内用户列表 | 属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。 |
添加批量用户
先编辑一个文本用户文件。
每一列按照
/etc/passwd
密码文件的格式书写,要注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留做空白或输入x号。一个范例文件user.txt内容如下:1
2
3
4
5
6user001::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以root身份执行命令
/usr/sbin/newusers
,从刚创建的用户文件user.txt
中导入数据,创建用户1
newusers < user.txt
执行命令/usr/sbin/pwunconv
将
/etc/shadow
产生的shadow
密码解码,然后回写到/etc/passwd
中,并将/etc/shadow
的shadow
密码栏删掉。这是为了方便下一步的密码转换工作,即先取消shadow password
功能。1
pwunconv
编辑每个用户的密码对照文件。
1
2
3
4
5
6user001:密码
user002:密码
user003:密码
user004:密码
user005:密码
user006:密码以root身份执行命令
/usr/sbin/chpasswd
创建用户密码,
chpasswd
会将经过/usr/bin/passwd
命令编码过的密码写入/etc/passwd
的密码栏。1
chpasswd < passwd.txt
确定密码经编码写入/etc/passwd的密码栏后。
执行命令
/usr/sbin/pwconv
将密码编码为shadow password
,并将结果写入/etc/shadow
。1
pwconv
yum 命令-包管理
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
1 | yum [options] [command] [package ...] |
参数 | 说明 | |
---|---|---|
options | -h | 帮助 |
-y | 当安装过程提示选择全部为"yes" | |
-q | 不显示安装的过程 | |
command | check-update | 列出所有可更新的软件清单命令 |
update | 更新所有软件命令 | |
update<package_name> | 仅更新指定的软件命令 | |
install <package_name> | 仅安装指定的软件命令 | |
list | 列出所有可安裝的软件清单命令 | |
remove <package_name> | 删除软件包命令 | |
search <keyword> |
查找软件包命令 | |
clean packages | 清除缓存目录下的软件包 | |
clean headers | 清除缓存目录下的 headers | |
clean oldheaders | 清除缓存目录下旧的 headers | |
clean/clean all | 清除缓存目录下的软件包及旧的headers | |
package | 操作的对象 |
命令大全
其他
解压rar
1 | sudo apt-get install rar unrar |