Resive world

Come world to Record life


  • Home

  • Tags

  • Categories

  • Archives

  • Sitemap

  • Search

Linux中group文件详解

Posted on 2015-10-04 | In Linux

这个文件用处不是太大,记下来仅作了解。

文件样例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
myths@myths-X450LD:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:
floppy:x:25:
tape:x:26:
sudo:x:27:
audio:x:29:pulse
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
libuuid:x:101:
netdev:x:102:
crontab:x:103:
syslog:x:104:
fuse:x:105:
messagebus:x:106:
ssl-cert:x:107:
lpadmin:x:108:
scanner:x:109:saned
mlocate:x:110:
ssh:x:111:
utempter:x:112:
avahi-autoipd:x:113:
rtkit:x:114:
saned:x:115:
whoopsie:x:116:
avahi:x:117:
lightdm:x:118:
nopasswdlogin:x:119:
bluetooth:x:120:
colord:x:121:
pulse:x:122:
pulse-access:x:123:
myths:x:1000:
sambashare:x:124:
ftp:x:125:
postfix:x:126:
postdrop:x:127:
smmta:x:128:
smmsp:x:129:
guest-g1Jo1T:x:130:

跟/etc/passwd文件差不多,每行一个记录,每个记录由以下部分组成:

1
组名:口令:组标识号:组内用户列表

文件分析

组名

用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

口令

就是密码,存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。

组标识号

与用户标识号类似,也是一个整数,被系统内部用来标识组。

组内用户列表

是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。

用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。直接加参数即可:

1
root@myths-X450LD:~# newgrp myths

Linux中passwd文件详解

Posted on 2015-10-04 | In Linux

Linux的用户信息很多都保存在这个/etc/passwd文件中,以前觉得这种配置文件挺难看懂的,但是静下心来瞅瞅其实也就一点东西,我们来一起看下。

文件样例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
root@myths-X450LD:/home# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
libuuid:x:100:101::/var/lib/libuuid:
syslog:x:101:104::/home/syslog:/bin/false
messagebus:x:102:106::/var/run/dbus:/bin/false
usbmux:x:103:46:usbmux daemon,,,:/home/usbmux:/bin/false
dnsmasq:x:104:65534:dnsmasq,,,:/var/lib/misc:/bin/false
avahi-autoipd:x:105:113:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
kernoops:x:106:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
rtkit:x:107:114:RealtimeKit,,,:/proc:/bin/false
saned:x:108:115::/home/saned:/bin/false
whoopsie:x:109:116::/nonexistent:/bin/false
speech-dispatcher:x:110:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh
avahi:x:111:117:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
lightdm:x:112:118:Light Display Manager:/var/lib/lightdm:/bin/false
colord:x:113:121:colord colour management daemon,,,:/var/lib/colord:/bin/false
hplip:x:114:7:HPLIP system user,,,:/var/run/hplip:/bin/false
pulse:x:115:122:PulseAudio daemon,,,:/var/run/pulse:/bin/false
myths:x:1000:1000:myths,,,:/home/myths:/bin/bash
ftp:x:116:125:ftp daemon,,,:/srv/ftp:/bin/false
postfix:x:117:126::/var/spool/postfix:/bin/false
smmta:x:118:128:Mail Transfer Agent,,,:/var/lib/sendmail:/bin/false
smmsp:x:119:129:Mail Submission Program,,,:/var/lib/sendmail:/bin/false
guest-g1Jo1T:x:120:130:Guest,,,:/tmp/guest-g1Jo1T:/bin/bash

这是我这里的passwd文件配置,可以看到有很多条记录,每条记录有7个以“:”分隔的字段他们的意义分别是:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

文件简析

用户名

用户名是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(:),因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。(什么规则的不用记的,反正正常点的名字就行了)

口令

口令就是密码了,一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如x或者*也就是这里不给看,让你晓得个有这个意思就行,想看的话去/etc/shadow。

用户标识号

这是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。通常用户标识号的取值范围是0~65535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。(一般这都没必要记的,晓得就行)

组标识号

这个记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。(就是告诉你他属于哪个组)

注释性描述

记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字。(也就是我们用adduser的时候选填的哪个信息,没啥大用,看着玩玩)

主目录

也就是用户的起始工作目录,它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。(废话,不过注意一定是绝对路径)

登陆shell

用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。Shell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有:

  • sh(BourneShell)
  • csh(CShell)
  • ksh(KornShell)
  • tcsh(TENEX/TOPS-20typeCShell)
  • bash(BourneAgainShell)

系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。

用户的登录Shell也可以指定为某个特定的程序(此程序不是一个命令解释器)。利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux系统要求只有那些在系统中登记了的程序才能出现在这个字段中。(不用管了,晓得意思就行)
基本就这么内容,晓得怎么回事就行了。以后用户管理遇到问题多进来瞅瞅。

Linux用户组管理和权限处理常用命令

Posted on 2015-10-04 | In Linux

前言

ubuntu的用户管理和权限控制本来应该是这种自由系统的精髓,然而由于一直用的是图形化的客户端界面,用的傻瓜安装盘,用户系统都是建的好好的,导致对它的作用理解不足。本来也没啥事,sudo神马的用的也是挺爽的,但是当用到ubuntu的服务器的时候,才发现这玩意真的不懂不行。。。。。。

who

1
2
3
myths@myths-X450LD:~$ who
myths :0 2015-10-02 12:58 (:0)
myths pts/7 2015-10-04 00:30 (:0)

这里的“myths”很明显是用户名,第一行指的是我们登陆的图形界面,“pts/7”指的是我们当前的console,也就是说如果开多个console,就会有各种的”pts/x”。最后是登陆的时间。还有一种很萌的用法:

1
2
myths@myths-X450LD:~$ who am I
myths pts/7 2015-10-04 00:39 (:0)

意思很简单,一看就晓得是怎么回事了。通过这个命令就能够看到当前登陆的用户信息,尤其是当有很多用户共用这台服务器的时候。。。

类似的还有w命令

1
2
3
4
5
6
myths@myths-X450LD:~$ w
00:52:55 up 1 day, 11:54, 3 users, load average: 0.40, 0.57, 0.50
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
myths :0 :0 五12 ?xdm? 2:39m 1.54s init --user
myths pts/7 :0 00:39 0.00s 0.03s 0.00s w
myths pts/11 :0 00:46 22.00s 0.05s 0.05s bash

还可以接用户名参数,意思差不多。

adduser(需要root权限)

这是正统的添加用户的指令,用法简单,直接上图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
root@myths-X450LD:~# adduser test
正在添加用户"test"...
正在添加新组"test" (1001)...
正在添加新用户"test" (1001) 到组"test"...
创建主目录"/home/test"...
正在从"/etc/skel"复制文件...
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
正在改变 test 的用户信息
请输入新值,或直接敲回车键以使用默认值
全名 []:
房间号码 []:
工作电话 []:
家庭电话 []:
其它 []:
这些信息是否正确? [Y/n] y

adduser <用户名> 即可,按照提示填写后会创建好用户和密码并创建用户名同名的组,而且会创建相应的家目录,ok,就是这么简单。

但是还有另一个命令useradd,这个命令也可以实现添加用户,但是直接执行:

1
root@myths-X450LD:/home# useradd test

则只会创建一个用户和和相应的组,这个用户只注册了一个默认的家目录(但是没有创建实际的文件夹)而且没有密码所以根本没法登陆,要想实现真正的注册必须这样

1
2
3
4
5
root@myths-X450LD:/home# useradd -m test
root@myths-X450LD:/home# passwd test
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码

可以加 -m (–create-home)选项以创建家目录,并且需要用passwd命令设置密码。恩,比较麻烦,这个据说是因为adduser命令实际是一个perl脚本,是useradd等类似底层命令的更友好的前端。adduser面向用户,方便好用。

要注意的是尽量记得要加上这个参数,因为他不仅会新建一个家目录,而且也会新建默认的.bashrc文件之类的相关配置。如果是自己后来手动mkdir的话,则会出现配置丢失等问题,比如提示符变成了”-bash-4.2$” 之类的问题。

userdel(需要root权限)

简单方便的删除用户命令

1
2
root@myths-X450LD:/home# userdel -r test
userdel: test 邮件池 (/var/mail/test) 未找到

就是直接删除一个用户,加上-r 参数还会删除用户目录和用户账户,所以一般当然要加-r啦。

passwd(需要root权限)

简单易懂,之前用过。

usermod(需要root权限)

这个命令比较复杂,当然也非常有用,在需要具体调节用户的权限时必不可少。我们一个一个看。

  • -d(–home HOME_DIR) [directory]
    这个参数用来设置用户的家目录,也就是修改/etc/passwd  文件里对应的值。要注意的是一定要用完整的路径名,而且要手动的创建文件夹,否则是没有用的。而且在用userdel -r删除用户的时候,这个目录也是要手动删除的。
    用法:
    root@myths-X450LD:/home# usermod -d /home/newtest test

  • -m (–move-home)
    这个参数用来修改家目录的名字,只能跟-d一起用。
    用法:
    root@myths-X450LD:/home# usermod -md /home/newtest test

  • -s(–shell)
    用来指定用户使用的shell文件一般是/bin/bash(绝对路径),有时候发现其他什么的都对然而还是无法登陆的话,有可能就是因为没有指定bash。
    用法:
    root@myths-X450LD:/home# usermod -s /bin/bash test

  • -l (–login)
    用来修改用户名,这个只是改了用户名,家目录的名字啥的都不变,这里注意一下,用法简单。
    用法:
    root@myths-X450LD:/home# usermod -l newname test

  • -g & -G
    这两个命令用来修改组,-g是通过修改/etc/passwd文件来改变用户所属的组,-G是通过修改/etc/group文件来改变添加用户能支持的组,这些组必须已经存在。
    用法:
    root@myths-X450LD:/home# usermod -g myths test
    root@myths-X450LD:/home# usermod -G myths test

usermod 命令常用参数基本就这些,还有一些不常用的以后遇到再说,就这样吧。

groupadd groupdel  这两个命令用来创建和删除组,比较常用

root@myths-X450LD:/home# groupadd test
root@myths-X450LD:/home# groupdel test
有时候删除用户不完全,会遗留默认创建的组信息,提示烦人的信息,可以用这个命令删掉。

英语作业备忘录

Posted on 1969-12-31
  1. 书本 P39 表格, Activity 3的第2、3小题。
  2. 练习册
  3. 书本 P40-41 包括41.4
1…5758

574 posts
69 categories
286 tags
© 2024 Companyd
Powered by Hexo
|
Theme — NexT.Muse v5.1.4