Linux命令行中chmod命令的详解与实例

chmod命令直接改变Linux文件权限,可以是符号模式,也可以是数字模式。

符号模式使用+/-/= 例如,chmod u+x file.sh 为文件所有者添加执行权限。

使用rwx来符合数字模式4 2 1 例如chmod 7 5 5 使dir/目录可读、可写、可执行,文件默认为6 4 4
该脚本需要X权限才能运行 chmod u+xscript.py 允许所有者直接执行它。

敏感文件受 6 00 保护 chmod 6 00 config.json 只能由所有者读取和写入。

7 7 5 团队目录 chmod 7 7 5 项目/ 这样组中的每个人都可以使用它。

Web目录使用递归-R chmod -R 7 5 5 更改 webroot/目录和文件的权限。

注意不要乱写 不允许写入以防止数据被修改。

最小权限原则最重要 只需将 u+x 添加到脚本中即可。

更改重要文件之前备份权限 stat %a /etc/passwd > perm_backup.txt。

使用 ls -l 进行验证 ls -l file.txt 查看权限是否已正确更改。

注意特殊权限 SUID/SGID/Sticky 位 SUID 允许程序以所有者身份运行 SGID 保持新文件所属的组不变 粘性可以防止其他人删除您的文件。

自己掂量一下。

linux 文件夹赋权给用户

2 02 3 年,朋友问如何在Linux系统中允许文件夹。
我说必须用chown修改属主,然后配合chmod调整权限。
他问具体怎么做,我告诉他:
1 更改文件夹所有者(关键先决条件)
要将所有权转移给目标用户,请使用 chown 命令。
例如,要将 /home/test 分配给用户 alice,命令为 chown alice /home/test。

如果要同时更改所有者和组,例如将 /data 给用户 bob 和组 staff,命令为 chown bob:staff /data。

要递归修改子文件夹和文件,请添加-R参数,但要注意不要意外修改系统文件,如chown -R alice /home/test。

2 调整文件夹权限(确保用户可以访问它们)
权限由三个数字表示,例如所有者、所属组和其他用户。
每个数字都是 r(4 )、w(2 ) 和 x(1 ) 的总和。

例如,如果您希望所有者读写,请使用 chmod 7 00 文件夹路径,例如 chmod 7 00 /home/test。

如果所有者有读写执行,组属于读写,其他用户没有权限,则文件夹路径使用chmod 7 5 0。

要递归修改子文件权限,请添加-R参数,例如chmod -R 7 5 5 /data。
注意该文件夹的执行权限是“登录”权限,必须打开该权限才能访问子内容。

3 额外的特殊场景
如果你想给用户授予临时sudo权限,避免频繁的root操作,可以在/etc/sudoers中添加用户名ALL=(ALL)NOPASSWD:/path/to/folder,并使用visudo进行编辑,以确保不会出错。

要查看当前权限,请使用 ls -l 文件夹路径。
第一列显示权限,如drwxr-xr-x,d是文件夹,下面对应不同的用户权限。

我不确定这部分,但我认为这非常详细。
由你决定。

开通Linux密钥认证登录安全操作手册(Xshell)

2 02 2 年,我第一次接触Linux服务器。
那时我真的很困惑。
我想登录,但我担心我的密码会泄露。
后来我才知道密钥认证是个好东西。
我在 Windows 计算机上安装了 Xshell,并想学习如何使用它。

首先,您需要让服务器允许密钥身份验证。
您必须使用root用户打开sshd_config文件。
该文件位于 /etc/ssh 下。
我用vim打开的。
那么你需要换地方。
例如,我将端口更改为8 1 2 2 ,这样其他人就不会知道我的默认端口是2 2 还有PubkeyAuthentication,我将其更改为yes。

进行更改后,需要重新启动 sshd 服务。
我使用了 service sshd restart 命令。
重新启动后,服务器将允许密钥身份验证。

然后您需要在服务器上配置密钥。
您可以在 $HOME 路径中运行 ssh-keygen -t ecdsa 命令。
它会要求您输入密钥安全密码,您最好输入一个复杂的密码。
它将生成两个文件,一个是私钥,名为 id_ecdsa,另一个是公钥,名为 id_ecdsa.pub。
您保留私钥并使用它来登录。
您将公钥放在服务器上进行身份验证。

配置authorized_keys公钥。
您可以在$HOME目录下执行ls ~/.ssh/authorized_keys命令查看该文件是否存在。
否则,请将 id_ecdsa.pub 文件移动到authorized_keys 文件。
如果已存在,您可以将 id_ecdsa.pub 文件的内容添加到authorized_keys 文件中。

然后您需要更改文件权限。
您需要运行 cd ~/.ssh/ 命令导航到 .ssh 目录。
然后运行两个命令 chmod 6 00authorized_keys 和 chmod 6 00 id_ecdsa。
这样别人就无法随意读取你的私钥。

最后,需要确认应用用户和关键目录权限。
应用程序用户的权限目录应为7 5 5 ,.ssh目录应为7 00。
如果权限不正确,密钥可能无效。

然后需要将id_ecdsa私钥下载到本地机器。
需要确保下载到本地电脑时的权限也是6 00,这样别人就无法读取了。

最后,您可以使用命令 ssh user@IP -p Port -i id_ecdsa 进行连接。
user 是您的应用程序的用户名,IP 是服务器 IP,Port 是您定义的端口,id_ecdsa 是您的私钥。

如果认证失败,可以查看认证失败日志文件,该文件位于/var/log/secure 文件中。
您可以检查具体的错误原因。

后来我发现通过Xshell生成密钥非常简单。
只需选择密钥生产设置,然后导出私钥文件即可。
配置服务器的公钥authorized_key时,只需要把公钥放在服务器的~/.ssh/authorized_key文件中即可。

特别说明,Xshell支持多密钥认证。
您可以为不同的人生成不同的密钥身份验证。
只需按照以下步骤生成密钥、维护私钥并配置服务器的authorized_key公钥文件即可。
一个authorized_key可以支持每个密钥的多个身份验证。

最后,按顺序为了提高安全性,您可以启用其他系统安全认证设置。
例如,PermitEmptyPasswords、PasswordAuthentication、LoginGraceTime 和 PermitRootLogin 等设置。
您可以以 root 身份打开 sshd_config 文件,修改这些设置,然后重新启动 sshd 服务。

通过以上步骤,您可以有效提高Linux服务器的安全性,使用密钥认证方式登录,避免密码泄露的风险。
每天,定期更新密钥和检查系统安全设置对于确保系统安全至关重要。

linux上.so文件可以直接运行吗

哎呀,我以前也遇到过这个问题。
我先给大家科普一下知识。
so文件是Linux系统下的动态链接库文件,类似于Windows系统中的dll文件。
我们需要明白,这些文件并不是独立运行的,而是依赖于其他应用程序或脚本。

和你一样,上周有一位客户问我为什么他的文件无法打开。
我向他解释说SO文件就像一个厨师。
他自己不会做饭,只能等别人做饭。
例如,如果一个应用程序需要使用这个so文件提供的功能,它就会加载这个so文件,就像在厨房里呼叫厨师一样。
这样,应用程序可以运行,但 so 文件本身不能运行。

我踩过的陷阱是,以前以为so文件可以直接运行,结果程序出了问题。
所以,记住,so文件和.a文件(静态链接库)是附加角色。
它们需要别人调用,自己无法直接启动。
反正就看你自己了,用的时候记得找对地方调用就可以了。
我还在想这个问题,为什么要这样设计呢?也许是为了系统的稳定性和安全性。