Linux下的基础命令介绍(五)

一.用户的权限

1.对于文件来说:

r:可读,可以使用类似cat等命令查看文件内容

w:可写,可以编辑或删除此文件

x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核运行

2.对于目录来说:

r: 可以对此目录执行ls以列出内部的所有文件

w: 可以在此目录创建文件

x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息,目录一般都要有执行权限

3.rwx:

r--:只读

r-x:读和执行

---:无权限

0 000 ---:无权限

1 001 --x: 执行

2 010 -w-: 写

3 011 -wx: 写和执行

4 100 r--: 只读

5 101 r-x: 读和执行

6 110 rw-: 读写

7 111 rwx: 读写执行

755:rwxr-xr-x

rw-r-----: 640

660:rw-rw----

rwxrwxr-x:775

三位一组 用三个二进制位来表示一个八进制位,755表示文件或目录的所有者权限为rwx,用户所属组的权限为r-x,other用户的权限为r-x

4.用户和组:

1.用户登录计算机时系统会在数据库中查找用户名所对应的记录,获取用户的id号,然后根据这个id号来标识一个用户.用户的详细信息在/etc/passwd文件.用户的密码保存在/etc/shadow文件中

2.组的详细信息在/etc/group文件中.组密码在/etc/gshadow文件中

疑问:组是不用登录的那么为什么组需要有密码

3.在Linux系统中有三类用户

a.管理员 uid号永远为0,用户名为root 不可更改

b.普通用户 uid号 1-65535

c.系统用户和一般用户是属于普通用户下

e.系统用户---运行后台应用程序的 该类别用户不能登录系统 只是用来运行服务的uid号1-499

f.一般用户--uid号从500-65535

g.用户组类别:

管理员组

普通组

系统组

一般组

h.用户组类别:

私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组

基本组:用户的默认组

附加组,额外组:默认组以外的其它组

i.疑问:

什么是安全上下文,权限模型,属主和属组怎么和权限位关联起来的

5./etc/passwd---有七个字段

1.用whatis passwd ---查看有几个章节的man文档

2.用man 5 passwd ---查看文件的格式信息

a.用户名

b.password---密码占位符

c.uid---用户的id号

d.gid---用户基本组id

e.comment---注释详细

f.home--用户的家目录

j.shell---用户的默认shell

在/etc/shells 里面的shell是系统中的安全shell

6./etc/shadow--有八个字段

a.account--登录名

b.password--加密后的密码

加密的格式:

对称加密:加密和解密使用同一个密码

公钥加密:每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key)

单向加密,散列加密:提取数据特征码,常用于数据完整性校验

1、雪崩效应

2、定长输出

MD5:Message Digest, 128位定长输出

SHA1:Secure Hash Algorithm, 160位定长输出

c.从1970年到上一次修改密码经过的天数

d.密码最短使用期限

e.密码最长使用期限

f.密码警告时间

g.非活动时间--宽限期一登录就要修改密码否则就不能使用

h.密码过期时间

7.which useradd --查看命令对应的文件路径

8.用户管理:

useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage

a.useradd  [options]  USERNAME

-u UID

-g GID(基本组,组必须事先存在)

-G GID,...  (附加组,组必须事先存在)

-c "COMMENT"

-d /path/to/directory--指定用户家目录

-s SHELL

-m -k

-M 不为用户创建家目录

-r: 添加系统用户 不能登录系统并且不存在家目录

b.userdel---删除用户

不加参数默认不会删除home下的家目录

-r:删除用户同时删除用户的家目录

c.finger--检索用户相关账号信息

d.usermod--修改用户账号属性信息

-u UID

-g GID:修改基本组gid

-a -G GID:不使用-a选项,会覆盖此前的附加组;

-c  :注释信息

-d -m:修改家目录,有-m 则会将原来家目录下的文件移动到新的家目录下

-s  :指定默认shell

-l  :修改用户的登录名

-L:锁定帐号

-U:解锁帐号

e.chsh--修改用户的默认shell

g.chfn--修改用户注释信息,为finger命令显示的内容信息

h.passwd--修改用户密码

--stdin : 从标准读入密码

-l : 锁定用户

-u : 解锁

-d : 删除用户密码

9.在/etc/default/useradd文件中可以设定useradd的默认属性值

10.组管理:

groupadd, groupmod, groupdel, gpasswd

a.groupadd---添加组

-g : 指定gid

-r : 添加一个系统组

b.groupmod---修改用户组

-g : 修改组id

-n : 修改组名

c.groupdel---删除用户组

d.gpasswd groupname---给组加密码

在需要切换到另外的组事,需要用组密码

newgrp groupname ---临时切换到一个新组里面,使用exit 退出

11.权限管理:

chmod, chown, chgrp

12.在/etc/login.defs文件中可以设定用户添加时的信息

13.id命令--查看用户的属性信息

-u:查看uid

-g: 查看gid

-G: 查看附加组gid

-n: 查看组名

14.pwck--检查用户帐号完整性

15.chage--改变用户密码过期时间

-d: 最近一次的修改时间

-E: 过期时间

-I:非活动时间

-m: 最短使用期限

-M: 最长使用期限

-W: 警告时间

练习:

1、创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003),附加组为linux;

# groupadd -u 3003 distro

# groupadd linux

# useradd -u 2002 -g distro -G linux

2、创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh;

# useradd -c "Fedora Community" -s /bin/tcsh

3、修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora;

# usermod -u 4004 -g linux -G distro,fedora

4、给fedora加密码,并设定其密码最短使用期限为2天,最长为50天;

# passwd -n 2 -x 50 fedora

5、将mandriva的默认shell改为/bin/bash;

# usermod -s /bin/bash mandriva

6、添加系统用户hbase,且不允许其登录系统;

# useradd -r -s /bin/nologin hbase

时间: 2024-08-08 01:27:13

Linux下的基础命令介绍(五)的相关文章

Linux下的基础命令介绍(一)

一.基础命令 1.type命令----查看命令的类型 a.内置命令(内部命令)shell内置 b.外部命令----在文件系统的某个路径下有一个与命令名称一致的可执行文件 用法:type 命令名 根据返回的值判断,如果值为 is a shell builtin 那么它是内置命令,如果不是这个值而是一个路径 那么它是外部命令 2.printenv命令---查看环境变量 echo $PATH ----输出环境变量的值,使用冒号分割的路径 3.set命令--查看所有的系统变量 4.echo命令--输出变

Linux下的基础命令介绍(二)

一.目录和文件管理命令 1.ls命令---查看当前目录或指定目录下的文件和目录 2.cd命令---切换用户的工作目录 3.pwd命令---查看当前的工作目录 4.mkdir命令---创建一个空目录 选项: -p : 递归创建不存在的父目录 -v : 显示命令的执行的详细信息 5.tree命令---查看目录树 6.rmdir命令---删除一个空目录 选项: -p : 删除多级空目录 7.命令行展开---{} mkdir -pv /mnt/test/{x/y,z} 问题:创建这样的四个目录 a_b,

Linux下的基础命令介绍(七)

一.I/O重定向: 系统设定 默认输出设备:标准输出,STDOUT, 1 默认输入设备:标准输入, STDIN, 0 标准错误输出:STDERR, 2 标准输入:键盘 标准输出和错误输出:显示器 重定向为改变数据的来源和目的源 1.输出重定向: >  会覆盖原有文件中的内容 >> 追加输出 set -C: 禁止对已经存在文件使用覆盖重定向: 强制覆盖输出,则使用 >| set +C: 关闭上述功能 2>: 重定向错误输出 2>>: 追加方式 &>:

Linux下的基础命令介绍(六)

一.权限管理 1.三类用户: u: 属主 g: 属组 o: 其它用户 a: 所有用户 2.chown---修改文件的所有者 用法: chown 用户名 文件名或目录名...,修改目录时默认只改变目录的所属者 -R:递归修改目录下的文件的所属者 --reference=/path/to/somefile file,... 参考某个文件的所有者,修改后者与其一样 chown username:groupname file,.... 同时修改所属者 所属组 -R:递归修改目录下的文件的所属者 所属组

Linux下的基础命令介绍(三)

一.文本查看命令 1.cat命令--查看文本文件内容,多个参数连接并且显示多个文件内容 选项: -n : 显示时为每一行编号(编号不属于原文件内容) -E : 显示每一行的结束符$,在window里行结束符为$\n -A : 显示所有的文件内容 2.tac命令--查看文本内容,从尾部进行显示 3.head命令--从文件头部开始查看文本内容 选项: -n : 显示文件前n行 4.tail命令--从文件尾部开始查看文本内容 选项: -n : 显示文件后n行 -f :查看文件尾部,不退出,等待显示后续

Linux下的基础命令

在容器环境中很多时候要确定底层操作系统是什么和什么版本,网上找了一把,发现了一些比较有用的命令,从其他地方转过来,参考 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # 查

linux下修改rm命令防止误删除

前言:相信很多朋友都遇到过在linux下用rm命令误删除文件的时候,此刻的心中仿佛有无数的羊驼在奔腾.那么怎么防止这种情况发生呢?当然是有方法的,我们可以写一个shell脚本,改变一下rm命令的作用. 第一步: 先在home目录下创建一个叫username名字的目录(当然名字可以自定义),具体命令为:sudo mkdir username(自定义的名字) 这时候记得要用命令:sudo chmod 777 username(自定义的名字)来改变一下你的目录权限,因为在home目录下刚创建的目录是没

第十三天(linux常用的基础命令 )

按照下面的要求创建一个新的逻辑卷:    *) 逻辑卷命名为database, 属于 datastore 卷组.    *) 在 datastore卷组中的逻辑卷,500M.    *)使用{ext3|ext4|xfs}文件系统对新的逻辑卷进行格式化    *)逻辑卷应该在系统启动的时候自动挂载在/mnt/database 目录下.    *)lvm扩大至1G, 并且保留其原有资料的完整性; 新增加一个 SWAP 分区    *) 大小为512MB,    *) 使该 SWAP 能够每次开机生效

Linux下使用crontab命令以及Python脚本实现自动签到

关于这一部分, 我首先介绍下如何实现使用Python脚本实现签到功能其实,linux下有个命令叫做curl,完全可以完成模拟签到的功能,但是为了练习Python,我就用Python来写了.有这个想法完全是因为实验室的学长开发了一款App,上边收个起床签到,还有排名,为了能那个首签... 言归正传 首先,因为是手机上的App, 所以,我们需要抓包看下它具体的URL以及发送的内容是什么,关于这部分内容我就不在赘述了,我实现的功能主要有模拟发布状态和模拟签到两种功能,两个的URL也是不同的.为了不让学