linux group,linux官网

大家好,如果您还对linux group不太了解,没有关系,今天就由本站为大家分享linux group的知识,包括linux官网的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

Linux用户系统中的群组与群组管理员讲解

关于群组:有效与初始群组、groups, newgrp

代码如下:

#/etc/group

这个档案就是在记录 GID与群组名称的对应了~我的/etc/group内容有点像这样:

代码如下:

root:x:0:root

bin:x:1:root,bin,daemon

daemon:x:2:root,bin,daemon

sys:x:3:root,bin,adm

也是以冒号‘:’作为栏位的分隔符号,共分为四栏,每一栏位的意义是:

1.群组名称:就是群组名称啦!

2.群组密码:通常不需要设定,因为我们很少使用到群组登入!不过,同样的,密码也是被纪录在/etc/gshadow当中啰!

3. GID:就是群组的 ID啊~

4.支援的帐号名称:加入这个群组里面的所有的帐号,我们知道,一个使用者是可以加入多个群组的。举例来说,如果我想要让 dmtsai也加入 root这个群组,那么在第一行的最后面加上‘,dmtsai’,注意不要有空格,使成为‘ root:x:0:root,dmtsai’就可以啰~

比较重要的特色在于第四栏啦,因为每个使用者都可以拥有多个支援的群组,这就好比在学校念书的时候,我们可以加入多个社团一样! ^_^。不过这里您或许会觉得奇怪的,那就是:‘假如我同时加入多个群组,那么我在作业的时候,到底是以那个群组为准?’底下我们就来谈一谈这个‘有效群组’的概念。

#有效群组(effective group)与初始群组(initial group)

还记得每个使用者在他的/etc/passwd里面的第四栏有所谓的 GID吧?那个 GID就是所谓的‘初始群组( initial group)’了!也就是说,当使用者一登入系统,立刻就拥有这个群组的相关权限的意思。举例来说,我们上面提到 dmtsai这个使用者的/etc/passwd与/etc/group还有/etc/gshadow相关的内容如下:

代码如下:

[root@linux~]# grep dmtsai/etc/passwd/etc/group/etc/gshadow

/etc/passwd:dmtsai:x:501:501::/home/dmtsai:/bin/bash

/etc/group:users:x:100:dmtsai

/etc/group:dmtsai:x:501:

/etc/gshadow:users:::dmtsai

/etc/gshadow:dmtsai:!::

仔细看到上面这个表格,在/etc/passwd里面,dmtsai这个使用者所属的群组为 GID=501,也就是/etc/group里头 dmtsai那个群组啦~因为这是 initial group,所以,使用者一登入就会主动取得,不需要在/etc/group的第四个栏位写入该帐号的!

但是非 initial group的其他群组可就不同了。举上面这个例子来说,我将 dmtsai加入 users这个群组当中,由于 users这个群组并非是 dmtsai的初始群组,因此,我必须要在/etc/group这个档案中,找到 users那一行,并且将 dmtsai这个帐号加入第四栏,这样 dmtsai才能够支援 users这个群组啊。

那么在这个例子当中,因为我的 dmtsai这个帐号同时支援 dmtsai与 users这两个群组,因此,在读取/写入/执行档案时,针对群组部分,只要是 users与 dmtsai这两个群组拥有的功能,我 dmtsai这个使用者都能够拥有喔!这样瞭呼?不过,这是针对已经存在的档案而言,如果今天我要建立一个新的档案或者是新的目录,请问一下,新档案的群组是 dmtsai还是 users?呵呵!这就得要检查一下当时的有效群组了(effective group)。

如果我以 dmtsai这个使用者的身份登入后,该如何知道我所有支援的群组呢?很简单啊,直接输入 groups就可以了!注意喔,是 groups有加 s呢!结果像这样:

代码如下:

[dmtsai@linux~]$ groups

dmtsai users

在这个输出的讯息中,我知道我同时属于 dmtsai及 users这个两个群组,而且,第一个输出的群组即为有效群组(effective group)了。也就是说,我的有效群组为 dmtsai啦~此时,如果我以 touch去建立一个新档,例如: touch test,那么这个档案的拥有者为 dmtsai,而且群组也是 dmtsai的啦。这样是否可以瞭解什么是有效群组了?

那么如何变更有效群组呢?这个有两个方法,不论是那个方法,都是以 newgrp达成的!以上面这个例子来说,因为我的 dmtsai使用者同时拥有 dmtsai与 users两个群组,因此, dmtsai当然可以随时切换 dmtsai/users成为有效群组啰。所以,我可以下达:

代码如下:

[dmtsai@linux~]$ newgrp users

[dmtsai@linux~]$ groups

users dmtsai

此时,我的有效群组就成为 users了。当然,要能够顺利切换有效群组的话,还需要/etc/gshadow的辅助才行~这个等一下我们会说明的。好了,那么如果你开始在/home/dmtsai这个家目录底下尝试建立一个档案,例如‘ touch test2’好了,会发生什么状态呢?呵呵!那个档案的群组竟然变成 users了!这样更清楚有效群组的意义了吧?!

我们额外的来讨论一下 newgrp这个指令,这个指令可以变更目前使用者的有效群组,而且是另外以一个 shell来提供登入的喔,所以,以上面的例子来说, dmtsai这个使用者目前是以另一个 shell登入的,而且新的 shell给予 dmtsai有效 GID为 users就是了。当直接执行‘ newgrp groupname’时,使用者的有效群组会成为 groupname,此时虽然使用者的环境设定(例如环境变数等等其他资料)不会有影响,但是使用者的‘权限’将会重新被计算。举例来说, dmtsai此时建立的新档案群组是 users了~

鸟哥的这个例子当中,要注意的是, dmtsai这个使用者本来就属于 users与 dmtsai这两个群组,所以他可以直接使用 newgrp来切换有效群组,而要离开新的有效群组时,输入‘ exit’即可。假设我的 Linux系统当中还有另一个群组,名称为 vbird,那么 dmtsai是否可以登入 vbird这个群组?在某些前提下是可以的:

* vbird这个群组在/etc/gshadow的密码栏为合法的(不具有!开头!);

* dmtsai必须让 root或群组管理员(group administrator)加入到 vbird群组中。

这两个大前提缺一不可喔!好了,假设我已经使用 gpasswd建立了 vbird这个群组的密码,而 dmtsai也被加入群组成员当中了,那么当 dmtsai输入‘newgrp vbird’时,嘿嘿! dmtsai这个使用者的有效群组就能够变成 vbird啰~

#/etc/gshadow

刚刚讲了很多关于‘有效群组’的概念,另外,也提到 newgrp这个指令的用法,但是,如果/etc/gshadow这个设定没有搞懂得话,那么 newgrp是无法动作的呢!我的/etc/gshadow的内容有点像这样:

代码如下:

root:::root

bin:::root,bin,daemon

daemon:::root,bin,daemon

sys:::root,bin,adm

同样还是使用冒号‘:’来作为栏位的分隔字元,而且你会发现,这个档案几乎与/etc/group一模一样啊!是这样没错~不过,要注意的大概就是第二个栏位吧~第二个栏位是密码栏,如果密码栏上面是‘!’时,表示该群组不能使用密码来登入呢!至于第四个栏位也就是支援的帐号名称啰~

1.群组名称

2.密码栏,同样的,开头为!表示无法登入;

3.群组管理员的帐号(相关资讯在后续介绍)

4.该群组的所属帐号(与/etc/group内容相同!)

不过,就以系统的操作来说,事实上,这个/etc/gshadow的密码提供,最大的功能是在于‘让那些不在群组中的成员,临时加入该群组用的。’实际上使用的情况是很少的~而如果真的要操作这样的环境,那就得要熟悉 newgrp的用法啰!而且还要提供某个群组的密码出来,真是不好管理。所以,若真的想要让某个使用者利用该群组的功能时,还是直接将对方加入群组的支援就好了!省得麻烦~

Linux群组管理员

为什么需要群组管理员

我们假设一个场景,一个公司里有好多部门,不同员工需要加入到不同的群组。如果其中一个部门增加员工,就需要通知管理员,将其加入到对应的群组。如果每个部门都要增加员工,那管理员可能每天都会疲于奔命处理各个请求。

这时我们可以针对每个群组设置组长,并允许组长添加删除组成员,这样不仅可以提高效率,还减少了管理员的工作。

如何指派群组管理

语法:

代码如下:

gpasswd-A USERNAME GROUPNAME

效果:

   在添加群组管理时,可以指定多个用户,多个用户之间需要使用英文逗号隔开。

如何删除群组管理

语法:

复制代码

代码如下:

gpasswd-A"" GROUPNAME

效果:

   gpasswd没有特定的参数用于删除群组管理,我们指定空字符串即可。如果组内有多个管理员,指定保留用户即可。

群组管理添加成员

语法:

复制代码

代码如下:

gpasswd-a USERNAME GROUPNAME

效果:

   群组管理删除成员

语法:

复制代码

代码如下:

gpasswd-d USERNAME GROUPNAME

效果:

linux加组命令linux加组

如何在Linux下添加/删除/修改,用户及用户组?

Linux删除用户组和用户时常用的一些命令和参数。

1、从组中删除用户

编辑/etc/group找到GROUP1那一行,删除A

或者用命令

gpasswd-dAGROUP

2、建用户:

adduserphpq//新建phpq用户

passwdphpq//给phpq用户设置密码

3、建工作组

groupaddtest//新建test工作组

4、新建用户同时增加工作组

useradd-gtestphpq//新建phpq用户并增加到test工作组

注::-g所属组-d家目录-s所用的SHELL

5、给已有的用户增加工作组

usermod-Ggroupnameusername

或者:gpasswd-ausergroup

6、临时关闭:在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可。

或者使用如下命令关闭用户账号:

passwdpeter_l

重新释放:

passwdpeter_u

6、永久性删除用户账号

userdelpeter

groupdelpeter

usermod_Gpeterpeter(强制删除该用户的主目录和主目录下的所有文件和子目录)

7、显示用户信息

iduser

cat/etc/passwd

linux怎么删除添加附加组的用户?

user用户在组group01里面,所以只要从这个组里面删除用户就行了gpasswd-dusergroup01

如何创建Linux的用户组?

1、首先我们在Linux系统命令行中输入groupadd命令,用它创建一个用户组,如下图所示。

2、创建好了以后运用cat命令,打开etc下面的group文件,我们创建的用户组都会在里面,如下图所示。

3、打开group文件以后,我们看到了刚才创建的用户组,这是鉴别用户组是否创建成功的根据。

4、还可以通过在命令行中输入groupmod命令后,多敲几次tab键,终端会自动列举出当前所有的组,如下图所示。

5、另外,如果你创建一个用户的时候,如下图所示,运用useradd命令创建一个用户,默认是已经创建了用户组的,用户组和用户名称一样。

6、最后当你在创建文件的时候,你用哪个用户创建的,文件的所属组就会自动归属这个用户的所属组,如下图所示。

linux里怎么样给文件或文件夹添加指定组权限?

你可以使用chgrp命令给文件、或者文件夹添加指定组的权限。例如:$chgrpmygroupmyfile

如何在linux上用命令实现用户和组的管理?

Linux上用命令实现本地用户和组的管理

本地用户和组:管理文件和进程等等

本地用户和组:

1)root:超级管理员系统创建的第一个账户

特点:

id为:0

家目录:/root

具有系统的完全控制权:小心使用。

#id

uid=0(root)gid=0(root)groups=0(root)context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

#

2)普通用户:不具有管理员权限

特点:

id范围:

1000=id=60000

家目录:/home/用户名

#idstudent

uid=1000(student)gid=1000(student)groups=1000(student),10(wheel)

#

3)服务用户:为服务提供权限

特点:

id范围:

0id1000

家目录:应用程序服务目录

#idapache

uid=48(apache)gid=48(apache)groups=48(apache)

#

如果是yum,rpm安装的软件:由rpm包中的脚本创建服务账户

Includeconf.modules.d/*.conf

#

#Ifyouwishhttpdtorunasadifferentuserorgroup,youmustrun

#httpdasrootinitiallyanditwillswitch.

#

#User/Group:Thename(or#number)oftheuser/grouptorunhttpdas.

#Itisusuallygoodpracticetocreateadedicateduserandgroupfor

#runninghttpd,aswithmostsystemservices.

#

Userapache

Groupapache

#'Main'serverconfiguration

#

本地组:

1)主组:一个用户一定要属于某个主组中。当些用户在创建文件时,给文件的归属组

2)从属组:用户容器,组织和管理用户权限管控

作用:

文件:

进程:

$ps-ux

USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND

student321780.00.4930529360?Ss15:000:00/usr/lib/system

student321820.00.32537767072?S15:000:00(sd-pam)

student321880.00.21594124980?S15:000:00sshd:student@p

student321890.00.22339124864pts/0Ss15:000:00-bash

student322930.30.21594085192?D15:430:00sshd:student@p

student322940.30.22339124924pts/1Ss15:430:00-bash

student323190.50.22339404804pts/1S15:430:00/bin/bash

student323410.00.22693123876pts/1R+15:430:00ps-ux

$

账户文件:

1)/etc/passwd:保存用户信息

#cat/etc/passwd|grepstudent

student:x:1000:1000:StudentUser:/home/student:/bin/bash

用户名密码uid主组ID描述家目录登录shell

#

#cat/etc/passwd|grep-wroot:x

root:x:0:0:root:/root:/bin/bash

#

#cat/etc/passwd|grepapache

apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

服务账号无法登录系统

#

2./etc/shadow:保存用户密码的HASH,密码的有效性信息,密码修改时间,账户有效期。

#

#ls-l/etc/shadow

----------.1rootroot1014Mar2911:39/etc/shadow

#

#

#cat/etc/shadow|grepstudent

student:$6$8oIjLCsc$/n1iQXYh1E6.uOEuJKgioqAtmqm2TQmkJGF2RwyteIr1tIfrPdiRYgWe6Sjen5/eMij2uHM/a1tue/QRlo3X80:18038:0:99999:7:::

#

密码的HASH:sha512

8oIjLCsc$/n1iQXYh1E6.uOEuJKgioqAtmqm2TQmkJGF2RwyteIr1tIfrPdiRYgWe6Sjen5/eMij2uHM/a1tue/QRlo3X80

18038:天数密码最后一次修改的时间从1970-01-01+18038天之后那一天

0:密码最少使用天数0没有限制用户随时可以改密码

99999:天数,密码最大修改时间永久200多年

7:warning警告时间,当密码快到最后修改时间前7天,通知用户修改。

::天数失效时间inactive用户密码过了最后修改时间,未改变密码,再过多少天,账户将被锁定

::账户有效期

创建用户和组:

创建时,没有密码:

#useraddzhangsan

#useraddlisi

#idzhangsan

uid=1001(zhangsan)gid=1001(zhangsan)groups=1001(zhangsan)

#idlisi

uid=1002(lisi)gid=1002(lisi)groups=1002(lisi)

#

无法登录:与PAM有关

$

$su-zhangsan

Password:

Password:

su:Authenticationfailure

$

设置密码:

#

#cat/etc/passwd|grepzhangsan

zhangsan:x:1001:1001::/home/zhangsan:/bin/bash

#cat/etc/shadow|grepzhangsan

zhangsan:!!:18350:0:99999:7:::#!!未设置密码

#

#passwdzhangsan

Changingpasswordforuserzhangsan.

Newpassword:

BADPASSWORD:Thepasswordisshorterthan8characters

Retypenewpassword:

passwd:allauthenticationtokensupdatedsuccessfully.

#

#

#cat/etc/shadow|grepzhangsan

zhangsan:$6$3wxuXomVbQ58wQcK$oQW6injgldxa2N/Pt4tCPDVRqWRVGw.UNZdxE4R0nhEt8K/3UDKzxap6ReIReEvDpG.GdwjpMiiDh7.f6DJNQ0:18350:0:99999:7:::

#

chage可以查看用户密码属性

#chage-lzhangsan

Lastpasswordchange:Mar29,2020

Passwordexpires:never

Passwordinactive:never

Accountexpires:never

Minimumnumberofdaysbetweenpasswordchange:0

Maximumnumberofdaysbetweenpasswordchange:99999

Numberofdaysofwarningbeforepasswordexpires:7

#

创建组:从属组

#

#groupaddit

#

#

#groupaddsales

#

#

#

#cat/etc/group

root:x:0:

bin:x:1:

daemon:x:2:

sys:x:3:

adm:x:4:

tty:x:5:

disk:x:6:

lp:x:7:

mem:x:8:

kmem:x:9:

wheel:x:10:student

cdrom:x:11:

mail:x:12:postfix

man:x:15:

dialout:x:18:

floppy:x:19:

games:x:20:

tape:x:33:

video:x:39:

ftp:x:50:

lock:x:54:

audio:x:63:

users:x:100:

nobody:x:65534:

dbus:x:81:

utmp:x:22:

utempter:x:35:

input:x:999:

kvm:x:36:

render:x:998:

systemd-journal:x:190:

systemd-coredump:x:997:

systemd-resolve:x:193:

tss:x:59:

polkitd:x:996:

rpc:x:32:

unbound:x:995:

ssh_keys:x:994:

sssd:x:993:

setroubleshoot:x:992:

rpcuser:x:29:

insights:x:991:

cockpit-ws:x:990:

sshd:x:74:

chrony:x:989:

tcpdump:x:72:

student:x:1000:

printadmin:x:988:

libstoragemgmt:x:987:

slocate:x:21:

postdrop:x:90:

postfix:x:89:

apache:x:48:

zhangsan:x:1001:

lisi:x:1002:

it:x:1003:组成员列表

sales:x:1004:

#

#idstudent

uid=1000(student)gid=1000(student)groups=1000(student),10(wheel)

#

将用户添加进组:zhangsan,加入it组,lisi,sales组

#idstudent

uid=1000(student)gid=1000(student)groups=1000(student),10(wheel)

#usermod-aGitzhangsan

#

#

#usermod-aGsaleslisi

#

#

#idzhangsan

uid=1001(zhangsan)gid=1001(zhangsan)groups=1001(zhangsan),1003(it)

#idlisi

uid=1002(lisi)gid=1002(lisi)groups=1002(lisi),1004(sales)

#

删除用户:

#useraddandy

默认删除,保留用户的文件:

#

#userdelandy

#

#

#useraddandy#重建andy会不一样,uid会不同

useradd:warning:thehomedirectoryalreadyexists.

Notcopyinganyfilefromskeldirectoryintoit.

Creatingmailboxfile:Fileexists

#

#useradduser1

#useradduser2

#idandy

uid=1003(andy)gid=1005(andy)groups=1005(andy)

#userdel-rany

userdel:user'any'doesnotexist

#

#userdel-randy#不保留用户的文件。家目,邮箱文件,skel文件都会

#

#

#idandy

id:‘andy’:nosuchuser

#useraddandy

#idandy

uid=1006(andy)gid=1008(andy)groups=1008(andy)

#

从组中移除用户:

#

#idzhangsan

uid=1001(zhangsan)gid=1001(zhangsan)groups=1001(zhangsan),1003(it)#zhangsan主组,it从属组

#

命令:

#gpasswd-dzhangsanit

Removinguserzhangsanfromgroupit

#

#

#idzhangsan

uid=1001(zhangsan)gid=1001(zhangsan)groups=1001(zhangsan)

#

#

#usermod-aGitzhangsan

#

#

#idzhangsan

uid=1001(zhangsan)gid=1001(zhangsan)groups=1001(zhangsan),1003(it)

#

#

#

#groupszhangsan

zhangsan:zhangsanit

#

直接修改文件:

#vim/etc/group

#cat/etc/group|grepit:

it:x:1003:

#

删除组:

#groupaddtest

#

#

#groupdeltest

创建自定义用户和组:

实验:用户名mary,指定用户id2000,家目录/maryhome,不用登录系统描述thisismaryuser

#

#useradd-u2000-d/maryhome-s/sbin/nologin-c"thisismary"mary

#

#idmary

uid=2000(mary)gid=2000(mary)groups=2000(mary)

#cat/etc/passwd|grepmary

mary:x:2000:2000:thisismary:/maryhome:/sbin/nologin

#

#su-mary

Lastlogin:SunMar2916:48:49CST2020onpts/0

Thisaccountiscurrentlynotavailable.

#

创建自定义组:指定组id

#groupadd-g3000group1

#cat/etc/group|grepgroup1

group1:x:3000:

#

linux的ls - l命令,group~是什么意思

你好!

可以看到,用ls-l命令查看某一个目录会得到一个9个字段的列表.

第1行:总用量(total)

这个数值是该目录下所有文件及目录列表第5个字段的和(以k为单位),也就是该目录的大小.请注意和该目录下的文件和子目录下文件的总合做区分.这个数字和du/root得到的数字的大小是不一样的.可以用awk命令来验证.

用awk累加第5字段得到的数值:

[root@gucuiwen root]# ls-l|awk'BEGIN{sum=0}{sum+=$5}END{print sum}'

4104092

转化成以K为单位:

[root@gucuiwen root]# ls-l|awk'BEGIN{sum=0}{sum+=$5}END{print sum/1024}'

4007.9

用ls-l得到的数值:

总用量 4055

用du-sh/root得到的数值:

[root@gucuiwen root]# du-sh/root

127M/root

可以看到累加第5个字段得到的值和total显示的是一样的(因为具体算法的不同,略微有差别).得到的数值实际上是root目录的大小(把root目录看成是一个特殊的文件,就可以理解什么是目录的大小).而用du得到的数值是root目录下所由文件和子目录下全部文件的大小的总合.

第1字段:

文件属性字段

文件属性字段总共有10个字母组成,第一个字母表示文件类型,如果这个字母是一个减号"-",则说明该文件是一个普通文件.字母"d"表示该文件是一个目录,字母"d",是dirtectory(目录)的缩写.请注意,一个目录或者说一个文件夹是一个特殊文件,这个特殊文件存放的是其他文件和文件夹的相关信息.

如果该字母是"l",表示该文件是一个符号链接.符号链接的概念类似于windows里的快捷方式.字母"l"是link(链接)的缩写.在UNIX类系统中,一个文件可以有多个文件名,一个文件的多个文件名之间互称为硬链接(hard link).这些文件头可以指向同一个文件,删除其中一个文件名并不能删除该文件,只有把指向该文件的所有硬链接都删除,这个文件所占用的空间才真正被释放,该文件才真正被删除.这和windows是有很大区别的,windows中不允许一个文件有两个以上文件名,如果存在这中情况,则被认为是文件系统错误.如果你以前在windows下玩过DEBUG就知道,可以用DEBUG修改一张软盘上的根目录,使一个文件同时具有两个文件名.但是修改好后用 scandisk监测的时候会被认为是交叉链接错误.

开头为b的表示块设备文件(block),,设备文件是普通文件和程序访问硬件设备的入口,是很特殊的文件.它的没有文件大小,只有一个主设备号和一个辅设备号.上面的hda1就是一个设备文件,具有主设备号3和辅设备号1.表示第一个硬盘第一个分区.

另外,如果第一个字母为c表示该文件是一个字符设备文件(character),一次传输一个字节的设备被称为字符设备,比如键盘,字符终端等,传输数据的最小单位为一个字节.一次传输数据为一整块的被称为块设备,比如硬盘,光盘等.最小数据传输单位为一个数据块(通常一个数据块的大小是512字节).

第一字段的后面9个字母表示文件的权限.

r表是读(Read)

w表示写(Write)

x表示执行(eXecute)

其中前三个表示文件属主的权限,中间三个表示组用户权限,最后三个表示其他用户权限.

比如:

-rw-r--r-- 1 root root 1581 11月 24 18:14 anaconda-ks.cfg

表示文件的拥有者root对文件有读写权限,其他人(同组用户和其他用户只有读的权限)

另外,权限组还有一些特殊的表示法.比如/usr/X11R6/bin/XFree86具有如下权限:

[root@gucuiwen root]# ll/usr/X11R6/bin/XFree86

-rws--x--x 1 root root 1960262 2003-02-28/usr/X11R6/bin/XFree86

其中的s表示这个是网络接口程序"s"是socket的缩写.该程序在运行过程中会打开一个网络接口.

其他UNIX类系统如FreeBSD中还有t权限,表示一个临时(temporary)文件

在freeBSD中用ls-l/tmp可以看到这样的权限:

drwxrwxrwt

它的最后一位是字母"t"

第2字段

如果一个文件不是目录那么这一字段表示,这个文件所具有的硬链接数,即这个文件总共有多少个文件名.查看第一个文件:

-rw-r--r-- 1 root root 1581 11月 24 18:14 anaconda-ks.cfg

第2字段的值为1,说明这个文件只有anaconda-ks.cfg这一个文件名.即只有一个指向该链接的硬链接.

如果我用ln,做一个指向该文件的硬链接再查看该文件,该文件的第2字段就会变成2:

[root@gucuiwen root]# ln anaconda-ks.cfg anaconda-ks.cfg.hardlink

[root@gucuiwen root]# ls-l

总用量 4071

-rw-r--r-- 2 root root 1581 11月 24 18:14 anaconda-ks.cfg

-rw-r--r-- 2 root root 1581 11月 24 18:14 anaconda-ks.cfg.hardlink

此时,anaconda-ks.cfg和anaconda-ks.cfg.hardlink称为互为硬链接.他们指向同一个文件,无论是修改哪一个文件,另一个里也做相应的变化,因为实际上他们指向同一个文件.

用ls-i anaconda-ks.cfg可以查看它的文件节点(inode)

互为硬链接的文件具有相同的文件节点.以下是验证实验:

[root@gucuiwen root]# ls-i anaconda-ks.cfg

18102 anaconda-ks.cfg

[root@gucuiwen root]# ls-i anaconda-ks.cfg.hardlink

18102 anaconda-ks.cfg.hardlink

可以看到,这两个文件具有相同的文件节点号:18102

如果你知道一个文件有多个文件名,如何查找他的其他文件名分布在什么地方呢?

可以先用ls-i获得它的节点号,然后用find查找,如/etc/sysconfig/networking/devices/ifcfg-eth0就具有多个文件名,我要查找与它互为硬链接的文件:

[root@gucuiwen devices]# ls-i/etc/sysconfig/networking/devices/ifcfg-eth0

147181/etc/sysconfig/networking/devices/ifcfg-eth0

得到它的节点号为 147181

再用find查找:

[root@gucuiwen devices]# find/etc-inum 147181

/etc/sysconfig/networking/devices/ifcfg-eth0

/etc/sysconfig/networking/profiles/default/ifcfg-eth0

这样就得到了同一个文件的不同文件名的位置.

如果是一个目录,第2字段的含义:

如果是一个目录,则第2字段表示该目录所含子目录的个数.

新建一个空目录,这个目录的第二字段就是2,表示该目录下有两个子目录.为什么新建的目录下面会有两个子目录呢?

因为每一个目录都有一个指向它本身的子目录"."和指向它上级目录的子目录"..",这两个默认子目录是隐藏的.用ls-a可以看到.

每次在目录下新建一个子目录,该目录第2字段的值就增1,但是新建一个普通文件该字段值不增加.

第3字段:

文件拥有者

该字段表示这个文件是属于哪个用户的.UNIX类系统都是多用户系统,每个文件都有它的拥有者.只有文件的拥有者才具有改动文件属性的权利.当然, root用户具有改动任何文件属性的权利.对于一个目录来说,只有拥有该目录的用户,或者具有写权限的用户才有在目录下创建文件的权利.

如果某一个用户因为某种原因,被删除,而该用户的文件还存在,那么用ls-l查看该文件将显示一个代表用户存在前ID号的数字.

以下是演示:

先创建一个用户并用su过去:

[root@gucuiwen root]# useradd gucuiwen-g users

[root@gucuiwen root]# su- gucuiwen

用新建的用户创建一个测试文件:

[gucuiwen@gucuiwen gucuiwen]$ touch testfile

[gucuiwen@gucuiwen gucuiwen]$ ls-l testfile

-rw-r--r-- 1 gucuiwen users 0 1月 4 16:31 testfile

最后用ls-l看到第三字段的文件拥有者为gucuiwen

然后我将gucuiwen用户删除:

[root@gucuiwen root]# userdel gucuiwen

[root@gucuiwen root]# cd/home/gucuiwen/

[root@gucuiwen gucuiwen]# ls-l

总用量 0

-rw-r--r-- 1 501 users 0 1月 4 16:31 testfile

可以看到,第三字段成了一个数字,这个数字是原gucuiwen用户的ID号.因为文件系统对每个文件记录文件所有者的ID,而非用户名.

第4字段:

文件拥有者所在的组

组的概念可以想像成是一个共同完成一个项目的团队.通过组的概念,可以控制文件让特定的用户查看,修改或运行.而不是一棍子打死,要么全不让看,要么全让看.

一个用户可以加入很多个组,但是其中有一个是主组,就是显示在第4字段的明称.

可以在adduser的时候用-g指定该用户所在的主组,用-G指定其他组.

第5字段:

文件文件大小(以字节为单位)

第5字段表示文件大小,如果是一个文件夹,则表示该文件夹的大小.请注意是文件夹本身的大小,而不是文件夹以及它下面的文件的总大小!

很多人不能理解文件夹是一个特殊的文件的含义,这样的话理解文件夹大小的含义就比较困难了.

第6字段:

文件创建月份

#

第7字段:

文件创建日期

第8字段:

文件创建时间

文件创建的时间可以通过touch命令来修改.如:

#touch testfile

可以把testfile的创建时间修改为当前时间.

touch的详细用法请看链接文档.

#man touch

另外,一个文件还有最后访问时间,最后修改时间等属性.

这些属性可以用ls的其它参数显示出来.

第9字段:

文件名

如果是一个符号链接,那么会有一个"->"箭头符号,后面根一个它指向的文件名.

阅读剩余
THE END