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字段:
文件名
如果是一个符号链接,那么会有一个"->"箭头符号,后面根一个它指向的文件名.