Linux第六天

用户的操作,组的操作,以及权限的操作

linux 第六天

用户,组,和权限

avatar

a vatar

avatar

当你登陆成功,系统会分配给你一个令牌。

window中不能用户名与组名相同,linux则是可以的。

文件能不能访问是看你以什么身份访问。

avatar

avatar

查看window默认组:net localgroup

用id 账户名称可以观察它所在的组

avatar

/etc/passwd文件

passwd每个分割符意思:用户名:密码(当然一般已经不放在这了):UID:GID:描述信息:夹目录:shelkl

我们可以用cat命令查看passwd文件看某个用户的信息,但是这样不是很方便, 也可以使用以下命令:getent passwd,相当于直接查看文件,如果想查看某个用户那么就加上这个用户的用户名就可以了

如果想吧口令密码还在passwd中,可以用pwunconv,恢复pwconv。口令密码默认使用sha512加密

其实我们可以修改某个用户的账号uid改成0就能让它成为管理员

如果我们手贱把管理员UID给弄没了,请按照以下步骤恢复

avatar

chfn kju147,修改用户信息,也可以单独修改某个信息,用chfn –help查看相关的修改。用finger可以更好查看相关信息

如果我们修改passwd下的用户目录,那么登陆会提示一个错误(找不到家目录),会在根目录下

有专门的命令修改家目录,有关usermod详细命令可以查看以下链接

http://www.mamicode.com/info-detail-2240863.html

修改家目录usermod -d /home/kju147 kju147

修改shell了类型,可以用usermod -s 也可以用chsh -s /bin/csh

/etc/shadow

可以使用useradd 创建一个用户,但是这样是不能登陆的,创建没有口令密码是系统锁定的。锁定用户:usermod -L kju147 ,取消那就-U。一个简单的显示修改密码的:echo 111 |passwd --stdin wang。如果要想在历史不能看到可以用HISTCONTROL=ignoreboth ,输入的时候加空格就行

修改加密的算法:authconfig --passalgo=sha256 --update,查看etc/shadow有没有修改成功,$6是sha512,、$5就是256,以此类推。定义加密文件:/etc/login.defs

生成一个随机口令密码#openssl rand -base64 30,位数是你指定的,当然也不是说这就是30位

文件分割描述

  • 账户名称(密码需要与账户对应的嘛)
  • 加密后的密码(总不能学CSDN放明文密码,是吧),如果这一栏的第一个字符为!或者*的话,说明这是一个不能登录的账户,从上面可以看出,ubuntu默认的就不启用root账户。
  • 最近改动密码的日期(不是日期吗,咋是一堆数字,别急,这个是从1970年1月1日算起的总的天数)。那怎么才能知道今天距1970年1月1日有多少天呢?很简单,你改下密码,然后看下这个栏目中的数字是多少就可以了!
  • 密码不可被变更的天数:设置了这个值,则表示从变更密码的日期算起,多少天内无法再次修改密码,如果是0的话,则没有限制
  • 密码需要重新变更的天数:密码经常更换才能保证安全,为了提醒某些经常不更换密码的用户,可以设置一个天数,强制让用户更换密码,也就是说该用户的密码会在多少天后过期,如果为99999则没有限制
  • 密码过期预警天数:如果在5中设置了密码需要重新变更的天数,则会在密码过期的前多少天进行提醒,提示用户其密码将在多少天后过期
  • 密码过期的宽恕时间:如果在5中设置的日期过后,用户仍然没有修改密码,则该用户还可以继续使用的天数
  • 账号失效日期,过了这个日期账号就不能用了
  • 保留的字符,给以后的

avatar

修改口令密码有效期:chage wang,会逐个提示你需要修改的信息,只有root可以修改

我们修改42天之后过期,可以立刻看看结果,修改日期 date -s '45 day'

如果想让口令密码即时失效,迫使登陆者立刻改口令密码。只要把修改时间变成0就可以了。passwd -e test

getent shadow kju147 也可以看某个用户口令密码信息

上面提到的chage命令,还有其他的参数修改,比如chage -M 42 test修改最大有效期,更多的查看help

关于组的文件

/etc/group,这个文件分割就比较简单了(test2:x :1002:用户附加组),需要关注的是最后的一个分割代表是用户的附加组,我们可以直接修改文件把需要添加的用户写上(这里跟gshadow的最后一个分割也是一样的都是代表用户附加组)。主要注意的是,比如你用root登陆,而你再修改后,使用id命令不加上root作为参数查看是看不出的,因为直接输入id获取的是你当前登陆的信息而不会去查看文件(当然直接修改者一个文件还是不够全的,必须两个一样)

组管理员:管理组的口令密码,以及组的成员。添加口令密码;gpasswd test给test组添加口令密码,usermod -G kju147 test把k’ju147 添加进test组合,但是这样会把原来的组覆盖,需要在G前面加上个小a。文件默认创建是属于主组的,需要切换主组:newgrp test.我们普通用户如果要切换那就得输入密码,如果没有设置密码,那是名字都加不进去的。newgrp是临时的,不是永久有效的

gpasswd

创建组:grouopadd wang。修改组管理员:gpasswd -A kju147 test,将kju147设为test组的管理员

另一个将用户加入组的命令:gpasswd -a kju147 test,将kju147加入到test组中

s查看组成员:groupmems -l -g test

删除成员 gpasswd -d kju147 test

文件操作的最好方法

但是我们如果直接用nano来对以上文件进行操作,有时候会带来格式的问题,而且还会有说修改了一个文件另一个文件忘记修改的情况

avatar

vipw和vigr相当于vi /etc/passwd,因此你直接用vi也可以。下面两个是检查文件格式的

我们实际上需要掌握下面的所有相关命令

avatar

useradd

avatar

-ou,这样会id相同,他们的home目录不一样,但是显示的会是在passwd文件 里面靠前的用户名。由于id相同他们继承的权限自然也相同。当然我们一般很少会这样创建,除非像是说接替旧员工。

这样的就可以算一个标准的创建系统用户的格式 useradd -r -m -d /etc/zabbix -s /sbin/nologin zabbix

我们默认创建用户,会生成一些默认的文件,这就是默认的配置文件/etc/default/useradd,跟我们用useradd -D效果是一样的。其中skel下存放的就是生成home目录下的默认文件来源,貌似不能直接复制到非home文件夹下。我们如果要修改这文件的配置使用useradd -D 这样改,但是其实直接改文件更好.

另一个和用户登陆信息有关的 /etc/login.defs。这里面可以看到组的ID系统范围,系统用户的ID范围等等。另外id如果我们指定想写多大都行

我们也可以批量创建用户,但是格式必须要正确

1
2
zrt:x:1002:1003:zhaoritian:/home/zrt:/bin/bash
mayun:x:1003:1004::/app/mayunhong:/bin/bash

然后读取这个文件,就能成功创建了newusers user.text

批量修改密码文件格式

1
2
li:123456
myyun:123456

然后 cat pass.text |chapssed,就这么简单

usermod

avatar

修改用户名。home目录并不会改变。

-G 并不会保留原来的附加组,会覆盖,那么应该在G前加上a,要想删除全部可以 #usermod -G "" test

数据搬家:usermod -d /app/testhome -m test,-m搬家,-d指定目录

avatar

当然加上f参数强行删除

avatar

su切换账号

avatar

su - 完全切换

su -c root -c 'cat /etc/shadow',适合执行不多的需要权限的命令

passwd

avatar

avatar

avatar

gropupadd

avatar

avatar

如果有用户在组里面,那么必须得先把用户从组里面移除才能删掉(主组)

avatar

usermems -p -g kju147 清除所有附加组为kju147的用户

文件权限

avatar

无形给访问这个文件分成了三种:你是这个拥有者?组员?其他?

第一种修改权限的方法:

chmod who opt per

who:u(所有者),g(用户组),o(其他人),a(所有人)

opt:+,-,=(覆盖),要执行的操作,添加,去掉,覆盖权限,$chmod u= kju147file 自己啥权限都没了

per:r,w,x(执行权限,最基础权限),执行的权限操作

chmod也可以执行多个命令 chmod u=rw,g=r,0= kju147file

某些文件系统不支持这样的修改权限

chown test kju147file修改所有者

chown bin.ftp kju147file 修改所有者以及组

关于权限的一些说明

如果你自己是所有者,你要修改组,如果你在这个组里面,那你可以修改

如果你对一个文件有写权限,但是你必须对这个目录有写权限才能删除这个文件 ,但是如果你光有写权限,而没有这个文件夹的执行权限,那么你是不能进这个目录,不能看具体,也只能看看目录的文件列表了

读和写权限对root脚本没影响

如果你对一个文件夹只有读写权限但是没有执行权限,是无法删除这个根目录下的文件的(进不去怎么删?)

avatar

avatar

可以用reference参照某个文件设置权限 chmod --reference f1 f2,组也一样

还有一个大X权限,也是执行的意思,但是只对文件目录祈祷作用.比如:chmod -R a+x

s数字法的chmod,也很简单,举个例子:

rwx rw- r–,有的话就是1,没有就是0,然后每三位转化成10进制的数字

111 110 100

111:第一位1就代表是4,第二位1代表2,第一位1代表1,任何位数0代表的都是0 所以那就是

7 6 4

chmod 764 file1


Linux第六天
http://www.kju147.com/2018/11/27/Linux第六天/
作者
个人学习
发布于
2018年11月27日
许可协议