小编Mar*_*ton的帖子

如何用awk替换特定列的内容?

鉴于:记录中有 40 列。我想替换第 35 列,以便将第 35 列替换为第 35 列的内容和“$”符号。想到的是这样的:

awk '{print $1" "$2" "...$35"$ "$36...$40}'
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是因为当列数大到 10k 时它是不可行的。我需要一个更好的方法来做到这一点。

linux awk text-processing replace

45
推荐指数
3
解决办法
15万
查看次数

为什么 setuid 不起作用?

我想确保我的程序只能由xyz使用 root 权限的用户运行。为此,我设置了 setuid 位:

chmod u+s program1.sh
ls -l program1.sh
rwsr-x--- 1 root house 1299 May 15 23:54 program1.sh
Run Code Online (Sandbox Code Playgroud)

此外,我将用户添加xyzhouse组中,以便只有xyzroot 用户可以运行 program1.sh。

在 program1.sh 中有

id -u
Run Code Online (Sandbox Code Playgroud)

以便它可以向我显示有效 ID。

program1.sh以 root 身份运行,它显示root. 但是使用该xyz帐户运行时,它显示xyz. 似乎它没有以 root 权限运行。我不知道这里出了什么问题。

linux root setuid chmod privileges

20
推荐指数
1
解决办法
3万
查看次数

有没有办法从命令输出中读取行?

我有一个预处理命令来输出文件

./preprocess.sh > preprocessed_file 
Run Code Online (Sandbox Code Playgroud)

并且preprocessed_file将像这样使用

while read line
do

    ./research.sh $line &

done < preprocessed_file 

rm -f preprocessed_file
Run Code Online (Sandbox Code Playgroud)

有什么方法可以将输出定向到while read line零件而不是输出到 preprocessed_file?我认为除了使用这个 temp 之外应该有更好的方法preprocessed_file

shell io-redirection

9
推荐指数
2
解决办法
2万
查看次数

如何仅允许具有指定 ip 的机器通过 ssh 登录?

我想只允许具有允许 ip(s) 的机器通过 ssh 登录到我的系统。

例如,userA只能使用ipxx.xx.xx.xxyy.yy.yy.yy通过ssh登录,其他ip不能登录userA。并且userB只能使用 ipzz.zz.zz.zz通过 ssh 登录,除了 zz.zz.zz.zz可以使用userB.

我应该如何设置我的 Linux 来实现这一点?

linux networking ssh sftp permissions

3
推荐指数
1
解决办法
1899
查看次数

如何设置 umask 使目录为 `rx`,文件为 `---`

我想r-x其他人设置新创建的目录的默认权限,并将新创建的文件(非目录文件)的默认权限设置为---.

如果我将 umask 设置为 2,则目录权限获取r-x但文件获取r--

我找不到任何方法来实现我想要的umask

最终,我希望其他人能够遍历目录但不能读取文件的内容。我认为这是一个非常合理的要求,但最终似乎没有这样的设置。

linux permissions umask

2
推荐指数
1
解决办法
861
查看次数