收藏起来备用
为什么shc呢?直接用就好了
感谢分享。
打包时用 fakeroot 不就可以了吗
sudo -i
echo /home/$SUDO_USER
这样在root下就可以得到当前登录的普通用户主目录路径了
不过也有点小问题,一定要root下才能获取到当前用户名,sudo都不行
sudo -i
echo /home/$SUDO_USER
这样在root下就可以得到当前登录的普通用户主目录路径了
不过也有点小问题,一定要root下才能获取到当前用户名,sudo都不行
getent passwd ${SUDO_UID:-$(id -u)} | cut -d: -f 6
这个可以 普通用户 root 都可以 不用加sudo -i
普通用户显示 /home/用户名
root 显示 /root
getent passwd ${SUDO_UID:-$(id -u)} | cut -d: -f 6
这个可以 普通用户 root 都可以 不用加sudo -i
普通用户显示 /home/用户名
root 显示 /root
deb安装时使用sudo运行后,安装脚本是用root身份运行的,所以这部分的脚本中将 $USER
替换为 $SUDO_USER
就可以操作用户目录了
如果只是需要在root运行的脚本下操作用户目录,用这种系统提供的变量更简单
我加的sudo -i只是切换为root而已,然后echo测试输出,在脚本中不需要这些
deb安装时使用sudo运行后,安装脚本是用root身份运行的,所以这部分的脚本中将 $USER
替换为 $SUDO_USER
就可以操作用户目录了
如果只是需要在root运行的脚本下操作用户目录,用这种系统提供的变量更简单
我加的sudo -i只是切换为root而已,然后echo测试输出,在脚本中不需要这些
都可 不过 有点问题 也需要过滤字符串
我还是觉得这个比较好一点 getent passwd ${SUDO_UID:-$(id -u)} | cut -d: -f 6
不错不错
有新的内容会在笔记里 https://note.youdao.com/s/BBlPM7OJ
更新时间 2023.06.26-1436 版本0.1 脚本类型 SHELL BASH 实际有效脚本5个
上次更新 :2023.06.23-1939 版本0.1 实际有效脚本4个
点这个图标 比较好浏览
核心目的就是简化代码量 比较直观
可以认为 定义了三个管道命令脚本文件
MY-Desktop 是输出桌面路径的脚本
MY-USER-PWD 是输出用户名 或用户路径的脚本
CHOWN-CHGRP-CHMOD 是处理权限的脚本
先上一张图片比较直观 这个里使用一个小脚本来解决获取当前用户以及用户路径
这个脚本带一个参数 1
下面是代码 可以保存到一个 文件 我这叫 MY-USER-PWD
加权限
chmod -R 755 MY-USER-PWD
sudo apt install shc 可以使用 shc 制作成二进制文件
shc -r -v -f MY-USER-PWD
MY-USER-PWD.x
复制到usr/bin/改成MY-USER-PWD
在deb 中怎么调用? 很简单 在虚拟目录文件夹里 usr/bin/MY-USER-PWD
在 DEBIAN 目录下的相应脚本引入即可
修改文件归属
把这个脚本保存到文本文件 取名 CHOWN-CHGRP-CHMOD
加权限
chmod -R 755 CHOWN-CHGRP-CHMOD
存放到在虚拟目录文件夹里 usr/bin/CHOWN-CHGRP-CHMOD
在 DEBIAN 目录下的相应脚本引入即可
权限设置对照表 https://note.youdao.com/s/LpqVlRUk
3种用法
还有一种情况就是 中文桌面和英文桌面 下面使用一个脚本来结局这个问题
把下面代码保存到 文本文件 取名 MY-Desktop 加权限
chmod -R 755 MY-Desktop
然后保存到虚拟目录 usr/bin/
MY-Desktop
最后结合3个脚本来使用
在 DEBIAN 目录下的相应脚本引入即可
假设一个启动器文件 要从 /opt/data/xxx.desktop 复制到桌面
或者复制到/home/用户名/.config/autostart
注意事项:在 DEBIAN 目录下的脚本都是ROOT权限执行的,
安装完以后一些文件在普通用户下可能没有权限操作,CHOWN-CHGRP-CHMOD 脚本来处理
下面 实际综合来演示
这样代码就比较清楚了