分享

linux基础命令介绍一:用户与文件(二)

 我本无我O 2016-12-28

不 断 前 行,方 可 不 被 淘 汰


9、head tail more less 查看内容

这四个命令使用和cat类似,只是显示方式的区别。
head从文件的第一行开始显示,默认显示10行,使用选项-n可以指定显示行数:

[root@centos7 ~]# head -n 3 /etc/group
root:x:0:
bin:x:1:
daemon:x:2:

显示文件/etc/group的前三行。
/etc/group中每行被:分隔成4列:

1) 组名2) 口令,linux中一般无组口令,此处一般为x或*3) 组ID(GID)4) 组内成员列表,多个用逗号分隔。如果字段为空表示用户组为GID的用户名。

tail默认输出文件的倒数10行内容,也可以用选项-n指定行数:

[root@centos7 temp]# tail -n 4 /etc/shadow
postfix:!!:16814::::::
sshd:
!!:16814::::::
tcpdump:
!!:16994::::::
learner:
$6$.U5pPYhu$h9TnYR9L4dbJY6b6VgnAQBG5qEg6s5fyJpxZVrAipHeeFhHAiHk6gjWa/xOfvWx.CzM2fvk685OEUc.ZdBYiC0:17095:0:99999:7:::

显示文件/etc/shadow的后4行。
/etc/shadow中保存的是账号密码等信息,每行被:分隔成9列:

1) 用户名2) 加密的密码3) 上次修改口令的时间;这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数)。4) 两次修改口令间隔最少的天数;如果这个字段的值为空,账号永久可用;5) 两次修改口令间隔最多的天数;如果这个字段的值为空,账号永久可用;6) 提前多少天警告用户口令将过期;如果这个字段的值为空,账号永久可用;7) 在口令过期之后多少天禁用此用户;如果这个字段的值为空,账号永久可用;8) 用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,账号永久可用;9) 保留字段,目前为空,以备将来发展之用;

/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。
另外命令tail还有个常用选项-f,作用是随着文件内容的增加而输出,默认输出间隔为1s。
moreless两个命令的作用都是分页显示文件内容,区别是more不允许往回翻,只能用enter键和空格键分别显示下一行和下一页(类似于man命令),less允许往回翻,向上箭头和pageup按键也是可用的。读者可自行实验这两个命令,这里不再举例。

10、groupadd创建用户组

groupadd [OPTION] group

选项'-g'可以为新创建用户组指定GID。如创建一个新用户组group1并指定其GID为1005,然后再新创建一个用户tom,使他的UID为1002,GID为1000,登录shell为/bin/sh:

[root@centos7 ~]# groupadd -g 1005 group1
[root@centos7 ~]# useradd -u 1002 -g 1000 -s /bin/sh tom
[root@centos7 ~]# tail -n 1 /etc/passwd
tom:x:1002:1000::/home/tom:/bin/sh
[root@centos7 ~]# tail -n 1 /etc/group
group1:x:1005:

这里useradd命令的选项-u-g-s分别指定新用户的uid、gid和登录shell。

11、chmod 改变文件权限

chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...

在看此命令用法之前,我们先来解释一下命令ls的选项-l的输出:

[root@centos7 temp]# ls -l
总用量 0
drwxr-xr-x 3 root root 29 10月 21 20:34 dir1
drwxr-xr-x
2 root root  6 10月 21 20:33 dir2
-rw-r--r--
1 root root  0 10月 21 20:34 file1

这部分输出被分为7个部分:

1) -rw-r--r-- 10个字符中第一个字符-代表文件类型,linux中文件共有7种类型,分别表示如下:    d:代表文件是一个目录    l:符号链接    s:套接字文件    b:块设备文件    c:字符设备文件    p:命名管道文件    -:普通文件,或者说除上述文件外的其他文件剩下的9个字符每三个一组,表示这个文件的权限,linux中文件权限用二进制的000-111(一位八进制数)来分别代表文件的权限,其中:    r(read):读权限(如果是文件表示读取文件内容,如果是目录表示浏览目录)。二进制第一位置1即100,十进制为数字4。    w(write):写权限(对文件而言,具有新增、修改文件内容的权限,对目录来说,具有删除、移动目录内文件的权限。)。二进制第二位置1即010,十进制为数字2。    x(execute):执行权(对文件而言,具有执行文件的权限;对目录来说具有进入该目录的权限。)。二进制第三位置1001,十进制为数字1。    -(无权限):当没有上述权限时。二进制表示为000。这样本例中最后一行文件file1权限:前三个字符`rw-`表示文件的所有者(`owner`)对文件具有读和写的权限,十进制数字为4+2=6。中间三个字符`r--`表示文件的所属组(`group`)对文件具有读权限,十进制数字为4。最后三个字符`r--`表示系统中其他用户(`others`)对文件具有读权限,十进制数字为4。这样文件的权限可以用十进制数字`644`来表示。对于目录dir1来说:前三个字符`rwx`表示目录所有者(`owner`)对其具有读、写和执行的权限,十进制表示为4+2+1=7。中间三个字符`r-x`表示目录的所属组(`group`)对其具有读和执行的权限,十进制表示为4+1=5。后三个字符`r-x`表示系统中其他用户(`others`)对其具有读和执行的权限,十进制表示为4+1=5。这个目录权限用十进制表示即为`755`,注意文件和目录相同权限之间的区别。
2) 权限后面的数字代表文件的硬链接数
3) root文件的所有者,有时表示为用户的UID。
4) root文件的所属组,有时表示为用户组的GID。
5) 文件大小,以字节`Byte`为单位
6) 1021 表示文件内容最近一次被修改的时间。
7) 最后一列为文件名。

如给文件file1的用户组增加执行权限:

[root@centos7 temp]# chmod g+x file1
[root@centos7 temp]# ls -l file1
-rw-r-xr-- 1 root root 0 1021 20:34 file1

这里g+x表示给group增加执行x的权限。
如给文件file1的其他人减少读权限:

[root@centos7 temp]# chmod o-r file1
[root@centos7 temp]# ls -l file1
-rw-r-x--- 1 root root 0 1021 20:34 file1

这里o-r表示给others减少读r权限。
如给文件file1的任何用户都设置成rw-权限:

[root@centos7 temp]# chmod a=rw file1
[root@centos7 temp]# ls -l file1
-rw-rw-rw- 1 root root  0 1021 20:34 file1

这里a=rw表示给所有人all设置成rw-权限。
或者用十进制表示法直接指定文件的权限:

[root@centos7 temp]# chmod 644 file1
[root@centos7 temp]# ls -l file1
-rw-r--r-- 1 root root 0 1021 20:34 file1

如给目录dir1和目录内的所有目录和文件权限都设置成777:

[root@centos7 temp]# chmod 777 -R dir1
[root@centos7 temp]# ls -l
总用量 0
drwxrwxrwx 3 root root 29 10月 21 20:34 dir1
drwxr-xr-x
2 root root  6 10月 21 20:33 dir2
-rw-r--r--
1 root root  0 10月 21 20:34 file1

选项-R作用是递归地改变目标权限。
另外如目录/tmp的权限:

[root@centos7 tmp]# ls -l /
....drwxrwxrwt.   7 root root    88 1022 21:14 tmp....

我们看到权限最后一位是t,这里代表粘滞位(sticky),它的作用是给目录特殊的权限:使用户不能删除该目录下不属于此用户的文件。
t后面的.表示该文件被selinux的安全上下文保护。
如可执行文件/bin/su的权限:

[root@centos7 bin]# ls -l /bin/su
-rwsr-xr-x. 1 root root 32072 1120 2015 /bin/su

所有者的权限rws,这里的s代表suid,如果在用户组位置的话代表sgid,作用是给文件特殊的权限:当用户执行此文件的时候,把他当成是文件的所有者来执行。
这些特殊用途的的权限对普通用户来说知道即可。

12、lsattr 列出隐藏权限

lsattr [option] [files...]

如:

[root@centos7 temp]# lsattr ---------------- ./dir1
---------------- ./dir2
---------------- ./file1

列出了文件的隐藏权限位,共有16位(由于隐藏权限是文件系统相关的,不同的文件系统对于文件的隐藏权限的设定不一定相同)。

13、chattr 给文件设置隐藏权限

chattr [+-=] [mode] files...

如给文件file1增加隐藏权限a:

[root@centos7 temp]# chattr +a file1
[root@centos7 temp]# lsattr file1
-----a---------- file1

这里的a权限表示:这个文件将只能添加数据,而不能删除也不能修改数据,只有root才能配置这个属性。
给文件file2增加隐藏属性i:

[root@centos7 temp]# chattr +i file2
[root@centos7 temp]# lsattr file2
----i----------- file2

这些隐藏权限都不常用,通常知道这两个就可以了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多