Linux学习笔记3Word下载.docx
- 文档编号:4274402
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:8
- 大小:20.88KB
Linux学习笔记3Word下载.docx
《Linux学习笔记3Word下载.docx》由会员分享,可在线阅读,更多相关《Linux学习笔记3Word下载.docx(8页珍藏版)》请在冰点文库上搜索。
登录名;
加密密码;
自1970年1月1日(上次修改密码的日期)到当天的天数;
多少天后才能更改密码;
多少天后必须更改密码;
密码过期提前多少天提醒用户更改密码;
密码过期后多少天禁用用户账户;
用户账户被禁用的日期(用自1970年1月1日到当天的天数表示);
预留字段
3、添加新用户:
useradd。
该命令使用系统的默认值以及命令行参数来设置用户账户。
可以用useradd-D参数来查看你的Linux系统的系统默认值。
例如:
GROUP=100(新用户默认添加到GID=100的公共组)
HOME=/home(新用户的默认目录为/home/loginname)
INACTIVE=-1(新用户在密码过期后不会被禁用)
EXPIRE=
(新用户未被设置过期日期)
SHELL=/bin/bash(新用户的默认shell为bash)
SKEL=/etc/skel(系统会将/etc/skel目录下的内容复制到用户的HOME目录下)
CREATE_MAIL_SPOOL=yes(系统会为该用户在mail目录下创建一个用于接收邮件的文件)
SKEL=/etc/skel(系统会将/etc/skel目录下的内容复制到用户的HOME目录下)这个很有意思,useradd命令允许管理员创建一份默认的HOME目录配置,然后把它作为出新用户HOME目录的模版。
在UbuntuLinux系统上,/etc/skel目录下有下列文件:
.bash_logout.bashrcexamples.desktop.profile
你可以用默认参数创建一个新账户来测试一下,
useradd-mtest(默认useradd命令不会创建HOME目录,但是-m参数会叫他创建HOME目录,你可以看到useradd创建了新的HOME目录,并将/etc/skel目录中的文件复制了过来)
要想创建用户时改变默认值或默认行为,可以使用命令行参数。
如下所示:
-ccomment:
给新用户添加备注
-dhome_dir:
为主目录指定一个名字(默认为$HOME/登录名)
-eexpire_date:
用YYYY-MM-DD格式指定一个过期日期
-finactive_days:
指定过期后多少天被禁用,0表示一过期就禁用,-1表示永远不禁用
-ginitial_group:
指定所属GID或组名
-Ggroup...:
指定用户除登陆组之外所属的一个或多个附加组
-k:
必须和-m一起使用,将/etc/skel目录的内容复制到用户的HOME目录
-m:
创建用户的HOME目录
-M:
不创建用户的HOME目录(当默认设置里指定创建时,才用到)
-n:
创建一个和用户登录名同名的新组
-r:
创建系统账户
-ppasswd:
指定密码
-sshell:
指定默认shell
-uuid:
指定UID
-D:
查看默认参数,若后面跟其他参数则表示要修改默认参数。
-D-bdefault_home:
更改默认的创建用户HOME目录的位置
-D-eexpiration_date:
更改默认的新用户的过期日期
-D-finactive:
更改默认的过期后多少天被禁用
-ggroup:
更改默认的组名称或GID
更改默认的shell
useradd-D-s/bin/tsch
4、删除用户:
userdel命令。
默认情况下,userdel命令只会删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件。
userdel-r参数会删除用户的HOME目录以及mail目录。
然而,系统上仍可能存有归已删除用户所有的其他文件。
这在有些环境中会造成问题。
使用-r参数时一定要特别小心。
确认HOME目录中没有其他用户或其他程序要使用的重要文件。
5、修改用户:
(1)usermod:
最强大的一个。
他能用来修改/etc/passwd文件中的大部分字段,其参数跟useradd的参数大部分都一样,但还有一些实用的额外参数:
(a)-l:
用来修改登录名
(b)-L:
锁定用户。
用户将无法登陆
(c)-p:
修改密码。
(d)-U:
解除锁定。
(2)passwd和chpasswd:
passwd用户名:
修改用户的密码。
passwd:
修改自己的密码。
passwd-e参数能强制用户下次登陆时修改密码。
你可以先给用户设置一个简单的密码,然后强制其登陆时修改。
如果要修改大量用户的密码,chpasswd目录会简化事情,chpasswd能从标准输入自动读取用户名和密码对(使用:
分割)列表,给密码加密,然后为用户账户设置。
例如使用重定向:
chpasswd<
users.txt
(3)chsh、chfn和chage:
chsh用于快速修改用户的默认登陆shell。
使用时必须用shell的全路径作为参数。
chsh-s/bin/cshtest:
为用户test修改默认shell。
chfn命令提供了在/etc/passwd文件的备注字段中存储信息的标准方法。
cfn命令会将Unix的finger命令用到的信息存进备注字段,而不是简单地存入一些随机文本(比如昵称之类的),或是将备注字段留空。
finger命令可以用来简单地查看Linux系统上的用户信息:
例如fingerrich(出于安全性的考虑,很多Linux管理员会在系统上禁用finger命令)。
如果使用chfn命令时不加参数,他会向你询问要存进备注字段的恰当值:
例如chfntest,按要求输入后,fingertest,greptest/etc/passwd
chage命令用来帮助管理用户帐号的有效期。
他有一些参数可以用来设置每个值。
chage-d:
设置上次修改密码到现在的天数。
-E:
设置密码过期的天数-I:
设置密码过期后多少天锁定用户-m:
设置修改密码间隔最少多少天-W:
设置密码过期前多少天开始提醒用户修改密码
chage命令的日期值可以使用2种格式:
YYYY-MM-DD格式的日期;
或自1970年1月1日起到该日期天数的数值。
chage命令中有一个好用的功能是设置帐号的过期日期。
通过它,你就能创建临时用户了。
设定的日期一过,临时账户就会自动过期,而不需要记住在那天去删除这些账户。
6、使用Linux组:
组有唯一的组名和GID。
7、/etc/group文件:
该文件包含组名、组密码、GID、属于该组的用户列表
组密码允许非组内成员通过它临时性地成为该组成员。
不要直接修改该文件来添加用户到一个组,而要用usermod命令。
说明:
该文件的最后一列有些误导人。
你会发现有些组并没有列出用户。
这并不是说这些组没有成员。
当一个用户在/etc/passwd中指定某个组作为默认组时,用户账户不会作为该组成员再出现在/etc/group中!
!
8、创建新组:
groupadd,例如groupaddshared,tail/etc/group
该命令没有提供将用户添加到组的选项。
你应该用usermod命令来添加用户到该组。
usermod-Gsharedrich;
usermod-Gsharedtest;
tail/etc/group
如果更改了已登录用户所属的用户组,该用户必须登出后再登陆,才会生效。
警告:
千万注意使用-G和-g的区别,-g是修改默认组。
9、修改组:
groupmod可以更改GID(-g参数)或组名(-n参数)。
groupmod-nsharingshared;
由于权限都是基于GID的,所以随意改组名
10、理解文件权限
ls-l输出的第一列的第一个字符代表对象的类型:
-表示文件d表示目录l表示链接c表示字符型设备、b表示块设备、n表示网络设备,之后的3组3字符的码为访问权限。
rwx,3组分别为UID、GID、OTHER
11、默认文件权限:
umask,umask命令输出4位数。
例如0022,第一位为粘着位(stickybit)。
后3位表示文件或目录的umask的八进制值。
要立即诶umask是如何工作的,先得理解八进制模式的安全性设置。
八进制模式的安全性设置先获取这3组权限的值,然后将其转换为3位二进制值表示这个八进制值。
例如rwx=111=7,r--=100=4。
umask值是从全权限值中要减去的值,对文件来说,全权限是666,目录是777。
所以如果umask=0022的话
touchfile1;
全权限666-022=644
ls-lfile1;
会看到rw-r--r--
umask026
touchfile2;
全权限666-026=640
ls-lfile2;
会看到rw-r-----
12、改变权限:
chmodoptionsmodefile,mode可以是8进制模式或符号模式
例如chmod760newfile
符号模式比较麻烦:
ugoa分别代表uid、gid、other、all;
+-=分别表示增加、减去、设置;
rwxXstugo介绍:
X表示如果对象是命令或它已有执行权限,则赋予执行权限,s表示运行时重新设置UID或GID,t表示保留文件或目录,ugo分别表示将权限设置为UID、GID、OTHER一样。
chmodo+rnewfile为other用户增加读权限
chmodu-xnewfile为uid用户减去执行权限
chmod-R参数:
可以让权限的改变递归地作用到文件和子目录。
可以使用通配符一次作用多个文件。
例子:
$chmodu=rwx,g=rx,o=xfile
上例的另一种形式
$chmod=rfile
为所有用户分配读权限
$chmod444file
同上例
$chmoda-wx,a+r
file
同上例
$chmod-Ru+rdirectory
递归地给directory目录下所有文件和子目录的属主分配读的权限
$chmod4755
13、改变所属关系:
chown更改属主chgrp更改默认属组
chownoptionsowner[.group]file
例如chowndannewfile//将newfile的属主更改为dan
chowndan.sharednewfile//将newfile的属主和属组同时更改为dan和shared
chown.richnewfile//只更改属组
chowntest.newfile//如果用户名和组名相同,则同时修改属主和属组为test
chown-R参数加通配符可以递归地改变子目录和文件的所属关系。
chown-h参数可以改变该文件的所有符号链接文件的所属关系。
chgrp命令用于更改文件或目录的默认属组:
例如chgrpsharednewfile//更改newfile的属组为shared
14、共享文件:
创建组是Linux系统上共享文件访问权限的方法。
如果要在大的环境中创建文档并共享,这会很繁琐。
所以Linux为每个文件和目录存储了3个额外的信息位:
(1)设置用户ID(SUID):
当文件被用户使用时,程序会以文件属主的权限运行。
(
由于SUID是在执行程序(程序的可执行位被设置)时起作用,而可执行位只对普通文件和目录文件有意义,所以设置其他种类文件的SUID位是没有多大意义的。
我们知道内核主要是根据euid来确定进程对资源的访问权限。
一个进程如果没有SUID位,则euid=uid分别是运行这个程序的用户的uid。
例如kevin用户的uid为204,foo用户的uid200,kevin运行foo用户的my.exe(假定kevin也有x权限)程序形成的进程的euid=uid=204内核根据这些值来判断进程对资源访问的限制,其实就是kevin用户对资源访问的权限,和foo没关系。
如果一个程序设置了SUID,则euid变成被运行的程序的所有者的uid,例如kevin用户运行myfile,euid=200,uid=204,则这个进程具有它的属主foo的资源访问权限。
SUID的作用就是这样:
让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源,获得程序属主的资源访问权限。
)
SUID虽然很好了解决了一些问题,但是同时也会带来一些安全隐患。
因为设置了SUID位的程序如果被攻击(通过缓冲区溢出等方面),那么hacker就可以拿到root权限。
因此在安全方面特别要注意那些设置了SUID的程序。
通过以下的命令可以找到系统上所有的设置了suid的文件:
[root@sgrid5/]#find/-perm-04000-typef-ls
对于这里为什么是4000,大家可以看一下前面的st_mode的各bit的意义就明白了。
在这些设置了suid的程序里,如果用不上的,就最好取消该程序的suid位。
(2)设置组ID(SGID):
对文件来说,程序会以文件属组的权限运行;
对目录来说,目录中创建的新文件会以目录的默认属组作为默认属组。
(3)粘着位:
进程结束后文件还会在内存中。
(在一个目录上设了sticky位后,(如/home,权限为1777)所有的用户都可以在这个目录下创建文件,但只能删除自己创建的文件(root除外),这就对所有用户能写的目录下的用户文件启到了保护的作用。
SGID位对文件共享非常重要。
使能了SGID位,你能让在一个共享目录下创建的新文件都属于该目录的属组,也就是每个用户的组。
SGID可通过chmod命令设置。
他会加到标准3位8进制值之前(组成4位八进制值),或者在符号模式下用符号s。
例如111=SUID置位、SGID置位、粘着位置位,000=都不置位。
因此要创建一个共享目录,你只需将该目录的SGID位置位:
mkdirtestdir
ls-l//输出testdir的权限为rwxrwxr-x
chgrpsharedtestdir
chmodg+stestdir
ls-l//输出testdir的权限为rwxrwsr-x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 学习 笔记