linux杂记(十二?) 关于账号和密码的二三事
关于密码的二三事
关于账号和密码的二三事
久了不更linux的相关知识,实在是懒得想内容点(纯粹是懒)。那么今天就来谈谈关于linux密码和账号的重要概念。
假如你的主机遭到入侵,那么对方的第一个侵入点自然就是主机上面的账号密码。所以,如果密码定义比较严格(就像我这种脑抽自然是有%&@#!这种自己都嫌烦的字符),那么自然对方就不容易猜到你的密码,保障也是杠杠的!
目前一些Cracker较常使用的密码破解软件,大抵也是【字典攻击法】及所谓的【暴力破解法】。就字面上意思,【字典攻击法】就是将字典里面所查到的任何单字或词组都输入到程序中,然后使用该程序一个个去尝试破解你的密码,但是也不要觉得这样的速度似乎很慢,实际上如今的计算机运算速度太高了,字典攻击法的操作效率基本上是很高的。另外一个【暴力破解法】就是直接使用键盘上任何可以使用 的按键,然后依照组合,以1个,2个,3个…。密码组合的方式去破解你的密码。这个方式比较慢,如果你的密码组合是6~8个字符以上,那么暴力破解法还是需要好长一段时间的。
由上面猜测密码的方式来说,设定一个好密码最好需要:
- 密码中含有数个特殊字符,例如#@$%^及数字键等等,你的按键越奇怪,那么对方越不容易使用既有的软件破解。什么123456、666666的就不要用了~
- 英文字母大小写混合使用
- 密码长度至少6~8个以上为好
- 没有特殊意义的字母或数字组合,并且夹着很多特殊字符
↑这种密码真的不容易破解,就是也容易被忘记就是了→ →
特别的什么【I&you~^_^~】也是可以的~
说回linux,基本上root可以设定【任何样式的密码】,而且root也可以帮助user订定他们的密码。那么修改密码使用什么命令?就是passwd了!
passwd
[root@linux ~]# passwd [-lunxwS] username
参数:
-l :将 username 这个账号的密码锁住 (lock),在 /etc/shadow 内的密码栏修订~
-u :将 -l 的 lock 解开!
-n :后面接天数 (数字) ,最短天数;亦即是 /etc/shadow 内的第四栏;
-x :后面接天数 (数字) ,最长天数;亦即是 /etc/shadow 内的第五栏;
-w :后面接天数 (数字) ,警告天数;亦即是 /etc/shadow 内的第六栏;
-S :显示目前这个 username 的相关信息。
范例:
范例一:将 dmtsai 这个使用者的密码冻结,并观察他!
[root@linux ~]# passwd -l dmtsai
Locking password for user dmtsai.
passwd: Success
[root@linux ~]# passwd -S dmtsai
Password locked.
[root@linux ~]# grep dmtsai /etc/shadow
dmtsai:!!$1$TDy6D7eg$jVJV/FMaQn14v5Kl7sqw6/:13026:0:99999:7::13149:
范例二:将上述密码冻结解开
[root@linux ~]# passwd -u dmtsai
实际上这个passwd指令功能强大,尤其很多功能仅有root才能执行。你可以使用passwd -l及passwd -u来强制让一个使用者暂时无法使用该账号。
在linux下,为了避免一不小心把系统玩坏,一般都会建议你以一般身份使用者来操作,等到需要设定系统环境时,才变换身份为root进行系统管理。
那么下面就来谈谈使用者身份切换问题。
一般而言,我们都不希望以root的身份登入主机,以避免被什么给入侵了。但是一部主机又不可能完全不进行修补或者设定等动作。这时候可以:
- 以
su直接将身份变成root,但是这个指令需要root密码 - 所以当有很多人同时管理一部主机的时候,那么root的密码不就很多人知道了吗?这个时候可以使用
sudo来进行工作
su
[root@linux ~]# su [-lcm] [username]
参数:
- :如果执行 su - 时,表示该使用者想要变换身份成为 root ,且使用 root 的
环境设定参数档,如 /root/.bash_profile 等等。
-l :后面可以接使用者,例如 su -l dmtsai ,这个 -l 好处是,可使用欲变换身份者
他的所有相关环境设定档。
-m :-m 与 -p 是一样的,表示『使用目前的环境设定,而不重新读取新使用者的设定档。』
-c :仅进行一次指令,所以 -c 后面可以加上指令喔!
范例:
范例一:由原本的 dmtsai 这个使用者,变换身份成为 root 。
[dmtsai@linux ~]$ su
Password: <==这里输入 root 的密码喔!
[root@linux ~]# env
USER=dmtsai
USERNAME=root
MAIL=/var/spool/mail/dmtsai
LOGNAME=dmtsai
# 注意到了吗?如果使用 su 没有加上 - 的话,那么很多原本使用者的相关设定会继续存在,
# 这也会造成后来的 root 身份在执行时的困扰。最常见的就是 PATH 这个变量的问题!
[root@linux ~]# exit<==这样可以离开 su 的环境!
[dmtsai@linux ~]$ su -
Password: <==这里输入 root 的密码!
[root@linux ~]# env
USER=root
MAIL=/var/spool/mail/root
LOGNAME=root
# 了解差异了吧?!所以,下次在变换成为 root 时,记得最好使用 su - !
范例二:使用 root 的身份,执行 head -n 3 /etc/shadow
[dmtsai@linux ~]$ su - -c "head -n 3 /etc/shadow"
Password: <==这里输入 root 的密码!
root:$1$jaldj9843u29jlj9u839jljlcghjlE/:12959:0:99999:7:::
bin:*:12959:0:99999:7:::
daemon:*:12959:0:99999:7:::
范例三:原本是 dmtsai 这个使用者,想要变换身份成为 vbird 时?
[dmtsai@linux ~]$ su -l vbird
Password: <==这里输入 vbird 的密码喔!
sudo
sudo的工作:
- 当使用者执行sudo时,系统会主动的去寻找/etc/sudoers档案,判断该使用者是否有执行sudo的权限
- 若使用者具有可执行sudo的权限后,便让使用者【输入使用者自己的密码】来确认
- 若密码输入成功,便开始进行sudo后续接的指令
- 不过,root执行sudo时,不需要输入密码
- 若欲切换的身份与执行者身份相同,那也不需要输入密码
要注意的是,使用者要【输入的是自己的密码,而不是欲切换成为他的那个身份的密码】。
[root@linux ~]# sudo [-u [username|#uid]] command
参数:
-u
:后面可以接使用者账号名称,或者是 UID。例如 UID 是 500 的身份,可以:
-u #500 来作为切换到 UID 为 500 的那位使用者。
范例:
范例一:一般身份使用者使用 sudo 在 /root 底下建立目录:
[dmtsai@linux ~]$ sudo mkdir /root/testing
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.Password: <==这里输入 dmtsai 自己的密码
dmtsai is not in the sudoers file.
This incident will be reported.
# 瞧!因为 dmtsai 不在 /etc/sudoers ,所以他就无法执行 sudo 喔!
范例二:假设 dmtsai 已经具有 sudo 的执行权限,如何在 /root 底下建立目录?
[dmtsai@linux ~]$ sudo mkdir /root/testing
Password: <==这里输入 dmtsai 自己的密码
范例三:如何将 sudo 与 su 搭配使用?
[dmtsai@linux ~]$ sudo su -
范例四:dmtsai 想要切换身份成为 vbird 来进行 touch 时?
[dmtsai@linux ~]$ sudo -u vbird touch /home/vbird/test
在预设情况下,没有设定/etc/sudoers是不能使用sudo的。而/etc/sudoers需要visudo去编辑,也就是要用root身份去执行visudo。
[root@linux ~]# visudo
# sudoers file.
# This file MUST be edited with the 'visudo' command as root.
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
# Runas alias specification
# User privilege specification
root ALL=(ALL) ALL
dmtsai ALL=(ALL) ALL
<==这里将 dmtsai 制作成完全可用!
# Uncomment to allow people in group wheel to run all commands
# %wheel
ALL=(ALL)
ALL
# Same thing without a password
# %wheel
ALL=(ALL)
NOPASSWD: ALL
# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
基本上,/etc/sudoers的结构可以使用man sudoers去查阅。关于【dmtsai ALL=(ALL) ALL】代表的意义是:
使用者账号 登入的主机=(可以变换的身份) 可以下达的指令
好了,今天终于扯完了- -||,我们下次见。
linux杂记(十二?) 关于账号和密码的二三事的更多相关文章
- linux保存住github的账号和密码
我是用 shell 命令来执行 git 操作的,所以就决定在 --global 配置一下用户名和密码,不用每次手动输入了. 设置步骤 1. 首先需要 ftp 连接到你的 Linux 服务器,在根目录( ...
- Linux账号和密码文件 /etc/passwd和/etc/shadow
Linux系统中,所有用户(包括系统管理员)的账号和密码都可以在/etc/passwd和/etc/shadow这两个文件中找到,(用户和密码就放在文件中,不怕被其他人看的或者修改吗?/etc/pass ...
- webug第十二关:我系统密码忘记了!
第十二关:我系统密码忘记了! 文件上传 直接上传php一句话, 菜刀链接
- 数据库里账号的密码,需要怎样安全的存放?—— 密码哈希(Password Hash)
最早在大学的时候,只知道用 MD5 来存用户的账号的密码,但其实这非常不安全,而所用到的哈希函数,深入挖掘,也发现并不简单-- 一.普通的 Hash 函数 哈希(散列)函数是什么就不赘述了. 1.不推 ...
- (转) mysql的连接,创建账号,修改密码
原文:http://blog.chinaunix.net/uid-20749043-id-1878306.html mysql的连接,创建账号,修改密码 2008-10-13 15:31:29 分类 ...
- Linux系统 Cetos 7 中重置root密码
几个月前在自己电脑上面安装了一个Linux 的虚拟机环境,当时是为了测试某一个小功能,用完就扔那里了,长时间没有使用,发现Root密码忘记了,登陆不了,怎么办呢?(ps:如果实际情况中忘记密码的这个服 ...
- MongoDB 设置账号和密码
一.安装MongoDB 1.环境配置: i.操作系统:CentOS release 6.8 (Final) [root@iZ2ze2pbbffhmn53ao4tuaZ bin]# cat /etc/r ...
- (转)mysql账号权限密码设置方法
原文:http://www.greensoftcode.net/techntxt/2013410134247568042483 mysql账号权限密码设置方法 我的mysql安装在c:\mysql 一 ...
- 在KVM虚拟机中使用spice系列之二(USB映射,SSL,密码,多客户端支持)
在KVM虚拟机中使用spice系列之二(USB映射,SSL,密码,多客户端支持) 发布时间: 2015-02-27 00:16 1.spice的USB重定向 1.1 介绍 使用usb重定向,在clie ...
随机推荐
- [ACM] hdu 1003 Max Sum(最大子段和模型)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- Java基础笔记-面向对象2
构造函数:(当类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数) 格式: class Person { Person(){} //空参数 } 1.函数名与类名相同, 2,不定义返回值类 ...
- 动画原理——绘制正弦函数&环绕运动&椭圆运动
书籍名称:HTML5-Animation-with-JavaScript 书籍源码:https://github.com/lamberta/html5-animation 1.正弦函数.x位置递增, ...
- EC读书笔记系列之14:条款26、27、28、29、30、31
条款26 尽可能延后变量定义式的出现时间(Lazy evaluation) 记住: ★尽可能延后变量定义式的出现.这样做可增加程序的清晰度并改善程序效率 ----------------------- ...
- 利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析
首先下载oxygen软件(Oxygen XML Editor),目前使用的是试用版(可以安装好软件以后get trial licence,获得免费使用30天的权限,当然这里鼓励大家用正版软件!!!) ...
- Programming C#.Classes and Objects.成员方法
this关键字指向类的当前实例,this指针是类中所有非静态方法的隐藏指针,每个方法都能通过this指针指向对象的其他方法和成员变量. 因为对一个类来说,它的成员函数(方法)只有一份,所有的实例对象共 ...
- Linux学习sed命令
sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送 ...
- centos6安装vncserver实现图形化访问
一.配置163的yum源 1.导入CentOS-6的GPG证书 #rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6 2.让 ...
- Ajax访问PHP页面出现的跨域问题
1.跨域问题:简单来说就是A域名下的程序想从B域名下的文件里面获取信息(这句话是我上网看到的) 2.一般请求(本地测试): 请求页 响应页 这样做是没问题的. 但我如果将Ajax请求的url ...
- js 报错 :object is not a function
object is not a function 我遇到的具体问题是:js命名方法重复了,找到了别的地方,改个方法名就可以了 var h2_price = document.getElementByI ...