linux学习笔记一 etc/group useradd passwd

/etc/group 文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特征。比如我们把某一用户加入到root用户组,那么这个用户就可以浏览root用户家目录的文件,如果root用户把某个文件的读写执行权限开放,root用户组的所有用户都可以修改此文件,如果是可执行的文件(比如脚本),root用户组的用户也是可以执行的;用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;/etc/gshadow是/etc/group的加密信息文件。

/etc/group的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:

group_name:passwd:GID:user_list

第一字段:用户组名称;

第二字段:用户组密码;一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。

第三字段:GID组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。别称GID.

第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

[[email protected] /]$ cat /etc/group

root:x:0:234

bin:x:1:bin,daemon

daemon:x:2:bin,daemon

sys:x:3:bin,adm

adm:x:4:adm,daemon,234

tty:x:5:

disk:x:6:

lp:x:7:daemon

mem:x:8:

kmem:x:9:

wheel:x:10:

mail:x:12:mail,postfix

uucp:x:14:

man:x:15:

games:x:20:

gopher:x:30:

video:x:39:

dip:x:40:

ftp:x:50:

lock:x:54:

我们以root:x:0:234为例: 用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括root、234以及GID为0的其它用户

whoami 查看当前登录用户名

[[email protected] /]$ whoami

srd

groups查看当前登录用户所属组

[[email protected] /]$ groups

srd

这里使用 tail命令查看、etc/group里面的关于srd账号的信息,可以看到srd组GID是500

[[email protected] /]$ tail -12 /etc/group

slocate:x:21:

srd:x:500:

mysql:x:27:

nagios:x:501:

nagcmd:x:502:nagios,apache

123:x:503:

group:x:504:

999:x:505:

555:x:506:

666:x:507:

z:x:508:

PD2913:x:509:

[[email protected] /]$

Chgrp 改变文件所属者

可以看到2015这个文件夹所属者是root

[[email protected] /]# ll

ls: cannot access nas: No such device or address

total 4322

-rw-r--r--.   1 root   root       247 Dec 31 15:26 1

drwxr-xr-x.   2 root   root      4096 Jan 23 11:30 2015

将2015改成500,500是srd的GID

[[email protected] /]# chgrp -v 500 2015

changed group of `2015‘ to 500

再查看2015所属组已经改变了

[[email protected] /]# ll

ls: cannot access nas: No such device or address

total 4322

-rw-r--r--.   1 root   root       247 Dec 31 15:26 1

drwxr-xr-x.   2 root   srd       4096 Jan 23 11:30 2015

文件属性 ll查看

从上面看到2015属性d rwx r-x r-x.

d文件夹, - 是文件,l 表示为连结档, b 表示为装置文件里面的可供储存的接口设备, c 表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

第2-4位标示文件所有者u权限 rwx:  r代表可读(read)、 w代表可写(write)、 x代表可执行(execute) 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已

第5-7位表示文件所属组g权限。第8-10位表示其他用户o的权限

上面2015文件夹srd能读不能写

[[email protected] /]$ cd 2015

[[email protected] 2015]$ mkdir 1

mkdir: cannot create directory `1‘: Permission denied

chmod改变文件的权限 所有者所属组加上写权限,查下权限显示所属组可以写了

[[email protected] /]# chmod g+w 2015                      (组加上写权限W)

[[email protected] /]# ll

ls: cannot access nas: No such device or address

total 4322

-rw-r--r--.   1 root   root       247 Dec 31 15:26 1

drwxrwxr-x.   2 root   srd       4096 Jan 23 11:30 2015

现在srd可以写2015文件夹了

[[email protected] /]$ cd 2015

[[email protected] 2015]$ mkdir 1

[[email protected] 2015]$

chown 改变文件所有者和组

chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限

[[email protected] /]# mkdir 2016

[[email protected] /]# ll

ls: cannot access nas: No such device or address

total 4326

-rw-r--r--.   1 root   root       247 Dec 31 15:26 1

drwxrwxr-x.   3 root   srd       4096 Jan 23 11:58 2015

drwxr-xr-x.   2 root   root      4096 Jan 23 13:50 2016

改变2016文件夹所有者

[[email protected] /]# chown srd:srd 2016

[[email protected] /]# ll

ls: cannot access nas: No such device or address

total 4326

-rw-r--r--.   1 root   root       247 Dec 31 15:26 1

drwxrwxr-x.   3 root   srd       4096 Jan 23 11:58 2015

drwxr-xr-x.   2 srd    srd       4096 Jan 23 13:50 2016

[[email protected] /]# cd 2016

[[email protected] 2016]# ll

total 12

drwxrwxr-x. 2 srd srd 4096 Jan 23 14:04 1

drwxrwxr-x. 2 srd srd 4096 Jan 23 14:04 2

drwxrwxr-x. 2 srd srd 4096 Jan 23 14:04 3

[[email protected] 2016]# cd 1

[[email protected] 1]# ll  看到里面文件的所有者和所有者所属组的权限

total 4200

-rwxr-xr-x. 1 srd srd 1789376 Jan 23 14:04 nagios-3.5.0.tar.gz

-rwxr-xr-x. 1 srd srd 2087089 Jan 23 14:04 nagios-plugins-1.4.16.tar.gz

-rwxr-xr-x. 1 srd srd  421635 Jan 23 14:04 nrpe-2.14.tar.gz

[[email protected] 1]#

[[email protected] 2016]# chown -R -v PD2913:PD2913 1

changed ownership of `1/nagios-3.5.0.tar.gz‘ to PD2913:PD2913

changed ownership of `1/nagios-plugins-1.4.16.tar.gz‘ to PD2913:PD2913

changed ownership of `1/nrpe-2.14.tar.gz‘ to PD2913:PD2913

changed ownership of `1‘ to PD2913:PD2913

[[email protected] 2016]# cd 1

[[email protected] 1]# ll  看到里面文件的所有者和所有者所属组的权限变为PD2913了

total 4200

-rwxr-xr-x. 1 PD2913 PD2913 1789376 Jan 23 14:04 nagios-3.5.0.tar.gz

-rwxr-xr-x. 1 PD2913 PD2913 2087089 Jan 23 14:04 nagios-plugins-1.4.16.tar.gz

-rwxr-xr-x. 1 PD2913 PD2913  421635 Jan 23 14:04 nrpe-2.14.tar.gz

[[email protected] 1]#

添加新的用户账号使用 useradd 命令,其语法如下:

useradd 选项用户名

其中各选项含义如下:

-ccomment 指定一段注释性描述。
-d 目录指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组指定用户所属的用户组。
-G 用户组,用户组指定用户所属的附加组。
-s Shell文件指定用户的登录Shell。
-u 用户号指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

增加用户账号就是在 /etc/passwd 文件中为新用户增加一条记录,同时更新其他系统文件如 /etc/shadow, /etc/group等。

[[email protected] /]# useradd -d /usr/456 -m 456

[[email protected] /]#

此命令创建了一个用户456,

其中-d和-m选项用来为登录名456产生一个主目录/usr/456(/usr为默认的用户主目录所在的父目录)

[[email protected] /]# tail -5 /etc/group

555:x:506:

666:x:507:

z:x:508:

PD2913:x:509:

456:x:510:

[[email protected] /]# useradd -s /bin/sh -g srd -G adm,root 678

[[email protected] /]#

此命令新建了一个用户678,该用户的登录Shell是/bin/sh,它属于srd用户组,同时又属于adm和root用户组,其中srd用户组是其主组。

[[email protected] /]# tail -11 /etc/passwd     显示倒数11行以后的用户信息,678和srd的GID都是500

tcpdump:x:72:72::/:/sbin/nologin

srd:x:500:500::/home/srd:/bin/bash

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

nagios:x:501:501::/home/nagios:/sbin/nologin

123:x:502:503::/usr/123:/bin/bash

234:x:503:500::/home/234:/bin/sh

555:x:504:506::/home/555:/bin/bash

666:x:505:500::/home/z:/bin/sh

PD2913:x:506:509::/home/PD2913:/bin/bash

456:x:507:510::/usr/456:/bin/bash

678:x:508:500::/home/678:/bin/sh

[[email protected] /]# cat /etc/group  显示678属于root组

root:x:0:234,678

bin:x:1:bin,daemon

daemon:x:2:bin,daemon

修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

修改已有用户的信息使用usermod命令,其格式如下:usermod 选项用户名,

常用的选项包括-c, -d, -m, -g,-G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:

下面命令将用户678的登录Shell修改为bin/bash,主目录改为/home/z,用户组改为srd。

[[email protected] /]# usermod -s /bin/bash -d /home/z -g srd 678

usermod: user 678 is currently logged in

[email protected] /]# ps aux |grep 678         查询用户678有哪些进程

root     24678  0.0  0.0 108336  1800 pts/1    S    Jan22   0:00 bash

root     32868  0.0  0.1 161440  1972 pts/1    S    14:30   0:00 su 678

678      32869  0.0  0.0 108340  1588 pts/1    S    14:30   0:00 sh

root     33427  0.0  0.0 103252   864 pts/1    S+   16:05   0:00 grep 678

[[email protected] /]# kill -s 9 32869  KILL掉,其中-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程

[[email protected] /]# [[email protected] /]#

[[email protected] /]# ps aux |grep 678  再次查询用户678有哪些进程

root     24678  0.0  0.0 108336  1800 pts/1    S    Jan22   0:00 bash

root     33433  0.0  0.0 103252   864 pts/1    S+   16:07   0:00 grep 678

[[email protected] /]# usermod -s /bin/bash -d /home/z -g srd 678   修改用户,不再报错了

[[email protected] /]#

[[email protected] /]# tail -5 /etc/passwd

555:x:504:506::/home/555:/bin/bash

666:x:505:500::/home/z:/bin/sh

PD2913:x:506:509::/home/PD2913:/bin/bash

456:x:507:510::/usr/456:/bin/bash

678:x:508:500::/home/z:/bin/bash   修改成功

用户密码的管理

用户账号刚创建时没有密码,但是被系统锁定,无法使用,必须为其指定密码后才可以使用,即使是指定空密码。

指定和修改用户密码的Shell命令是passwd。超级用户可以为自己和其他用户指定密码,普通用户只能用它修改自己的密码。命令的格式为:passwd 选项用户名

可使用的选项:

-l锁定密码,即禁用账号。
-u 密码解锁。
-d 使账号无密码。
-f 强迫用户下次登录时修改密码。

如果默认用户名,则修改当前用户的密码。

例如,假设当前用户是678,则下面的命令修改该用户自己的密码:

$ passwd
Old password:******
New password:*******
Re-enter new password:*******

如果是超级用户,可以用下列形式指定任何用户的密码:

# passwd 678
New password:*******
Re-enter new password:*******

普通用户修改自己的密码时,passwd命令会先询问原密码,验证后再要求用户输入两遍新密码,如果两次输入的密码一致,则将这个密码指定给用户;而超级用户为用户指定密码时,就不需要知道原密码。

为用户指定空密码时,执行下列形式的命令:

# passwd -d 678

此命令将用户678的密码删除,这样用户678下一次登录时,系统就不再询问密码。

正常情况切换用户需要输入密码。见下图

[[email protected] /]# passwd -d 678

Removing password for user 678.

passwd: Success

passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登录,例如:

#passwd -l 678

[[email protected] /]# passwd -l 678

Locking password for user 678.

passwd: Success

登录时候提示密码不对

[[email protected] 2015]$ su 678

Password:

su: incorrect password

解锁

[[email protected] /]# passwd -u 678

Unlocking password for user 678.

passwd: Success

时间: 2024-12-31 03:38:43

linux学习笔记一 etc/group useradd passwd的相关文章

Linux学习笔记之文件管理,用户管理

学而不用,总是忘记,今天又整理一下,记在这里,方便以后自己查看 常用操作命令 目录常用操作命令: pwd, cd, ls, mkdir, rmdir, tree. 文件常用操作命令: find,locate, whereis, which, touch, file, cp, rm,mv,ln,cat,tac,head,tail,more,less,grep,wc. 用户及用户组管理 Linux系统中用户分为3类:root用户,普通用户和虚拟用户.其中虚拟用户是不具备登录系统的能力,但却是系统运行

Linux学习笔记三:Linux的权限处理命令

1.改变文件或目录权限  chmod 语法:chmod [{ugo} {+-=} {rwx}] [文件或目录] 或 [mode] [文件或目录] 第一种语法中: 这里的u是所有者,g是指所属组,o是指其他人 +是指增加权限,-是指减少权限,=是指赋予权限 r是指读权限,w是指写权限.x只是执行权限 第二种语法中: 在这里,r的值是4,w的值是2,x的值是1. 这里写的mode,是指一组数字.如:421.这里的421,是指所有者所拥有权限的数字总和是4,所属组所拥有权限的总和是2,其他人所拥有权限

Linux学习笔记--vi

在Linux上使用vi命令修改一个文件内容的时候,发现无法保存,每次写完使用“:q!”命令可以正常退出但是使用":wq!"命令保存文件并退出时出现一下信息提示: E212: Can't open file for writing Press ENTER or type command to continue 出现这个错误的原因可能有两个: 1.当前用户的权限不足 2.此文件可能正被其他程序或用户使用. 一般错误原因都是前者,解决方案是在使用vi命令打开文件时,前面加上sudo来临时提供

Linux学习笔记033_8文本处理

less: 一次显示不完是可以向上(n),向下翻页(N),并且可以查找:/keyword,v进入编辑器 cat: 一次显示完文本内容 more: 回车向下翻一行,空格向下翻一页,但是不能向上翻页 nl: 显示行号的输出 head: 显示文件的前10行 head -n 15 a: 显示文件a的前15行 tail: 显示文件的最后10行 tail -n 15 a: 显示文件a的后15行 :查看日志的最后10行 :实时显示最后10行,如果没有-f则为静态 :提取11到20行保存在文件中 grep:(正

Linux学习笔记:Nagios的配置

安装方法请参考 Linux学习笔记:Nagios的安装 客户端 由于我的安装是使用xinetd这个daemon的,所以需要调整相关的配置文件 [[email protected] ~]# vi /etc/xinetd.d/nrpe  service nrpe {         flags           = IPv4         socket_type     = stream         port            = 5666         wait           

linux学习笔记(3)-文件系统

三大类文件类型 普通文件:包括文本文件.数据文件.可执行的二进制程序文件 目录文件:linux系统把目录看成一种特殊的文件,利用它构成了文件系统的树形结构 设备文件:把设备也看成是一个文件,例如你的鼠标,你的硬盘,等在linux中表现的就是一个文件 文件类型的标识符 前面谈到linux有多种不同的文件类型,对不同的文件处理方式肯定不同,例如对普通文件和对目录文件处理方式肯定是不同的,那么系统有是怎么识别的呢?,在文件属性里分别用不同的编码给他们做标记就行 下面是 不同文件的不同编码 普通文件(-

linux学习笔记(一)-文件目录相关的命令&&文件通配符

一.几个命令概述 1.查看目录以及目录底下的文件:ls(-a显示隐藏文件:-d显示目录本身:-l显示详细内容:-R递归显示,即把子目录的文件也显示出来:-h以更加被人类理解的格式显示,比如显示文件大小的时候用M为单位显示:-i显示文件索引ID) 2.查看文件内容:cat,head,tail,less,more,tac cat:将文件连接起来,输出在屏幕上,可接多个文件(-E:显示隐藏的换行符:-n:显示出行号) head:默认查看文件的前10行(-n#:查看文件的前#行.空白行也是一行) tai

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

Linux学习笔记——例说makefile 增加系统共享库

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.增加宏定义 5.增加系统共享库 6.增加自定义共享库 7.一个实际的例子 [代码仓库]--makefile-example