Root người dùng / sudo tương đương trong Cygwin?


156

Tôi đang cố chạy một kịch bản bash trong Cygwin.

Tôi nhận được Must run as root, i.e. sudo ./scriptnamelỗi.

chmod 777 scriptname không có gì để giúp đỡ

Tôi đã tìm cách bắt chước sudo trên Cygwin, để thêm người dùng root, vì việc gọi "su" sẽ gây ra lỗi su: user root does not exist, bất cứ điều gì hữu ích và không tìm thấy gì.

Bất cứ ai có bất kỳ đề nghị?


xin chào KenB, bạn có thể cho chúng tôi biết thêm chi tiết về whatkịch bản bạn đang cố chạy không? Không có tương đương với 'sudo' bên trong vỏ cygwin - các quyền là từ người dùng win đã khởi chạy vỏ cygwin, vì vậy liên kết KyleWpppd rất tốt để tránh các lỗi như "lệnh không biết sudo". Trong trường hợp của bạn có vẻ như đó là một vấn đề cụ thể với tập lệnh bạn muốn thực thi.
Stefano

1
Thành thật mà nói, đây là một vấn đề đã qua từ lâu và tôi thực sự không nhớ kịch bản là gì. Cảm ơn sự quan tâm, mặc dù.
Ken Bellows

Câu trả lời:


225

Tôi đã trả lời câu hỏi này trên SuperUser nhưng chỉ sau khi OP bỏ qua câu trả lời không có ích lúc đó là câu trả lời duy nhất cho câu hỏi.

Đây là cách thích hợp để nâng cao quyền trong Cygwin, được sao chép từ câu trả lời của riêng tôi trên SuperUser:

Tôi tìm thấy câu trả lời trong danh sách gửi thư của Cygwin . Để chạy commandvới các đặc quyền nâng cao trong Cygwin, hãy đặt trước lệnh cygstart --action=runasnhư sau:

$ cygstart --action=runas command

Điều này sẽ mở một hộp thoại Windows yêu cầu mật khẩu Quản trị viên và chạy lệnh nếu nhập mật khẩu phù hợp.

Điều này dễ dàng được viết kịch bản, miễn ~/binlà trong đường dẫn của bạn. Tạo một tệp ~/bin/sudocó nội dung sau:

#!/usr/bin/bash
cygstart --action=runas "$@"

Bây giờ làm cho tập tin thực thi:

$ chmod +x ~/bin/sudo

Bây giờ bạn có thể chạy các lệnh với các đặc quyền nâng cao thực sự :

$ sudo elevatedCommand

Bạn có thể cần thêm ~/binvào đường dẫn của bạn. Bạn có thể chạy lệnh sau trên Cygwin CLI hoặc thêm nó vào ~/.bashrc:

$ PATH=$HOME/bin:$PATH

Đã thử nghiệm trên Windows 8 64 bit.

Bạn cũng có thể thay vì các bước trên thêm một bí danh cho lệnh này để ~/.bashrc:

# alias to simulate sudo
alias sudo='cygstart --action=runas'

12
Câu trả lời tuyệt vời. Với một số điều chỉnh về mã bash của bạn (bên dưới), tôi đã có thể chạy một lệnh nâng cao từ dòng lệnh. Đây là thay đổi tôi cần để làm cho mã của bạn hoạt động: cat << 'EOF' > ~/bin/sudo\n #!/usr/bin/bash\n cygstart --action=runas "$@"\n EOF (Tôi không thể tìm ra cách chèn dòng mới vào nhận xét này, vì vậy tôi đã thêm '\ n vào mã) Phần còn lại từ PATH = ... trở đi là tốt .
josmith42

3
Ồ, tôi hiểu rồi! Nếu tôi không nhầm, đó là cách bạn ghi tệp vào đĩa, thay vì mở trình soạn thảo văn bản. Rất vui, cảm ơn bạn! Tôi không biết cách sử dụng heredocs trong Bash!
dotancohen

8
Vấn đề với điều này là nó tạo ra một cửa sổ terminal hoàn toàn mới (thường là conhost). Đầu ra không được đưa vào thiết bị đầu cuối hiện tại.
CMCDragonkai

1
Cách duy nhất để chạy những thứ như lslà bọc nó trong một quá trình chạy dài như mintty hoặc bash hoặc zsh. Nhưng tất cả xuất hiện trong một thiết bị đầu cuối riêng biệt. Vào thời điểm này, tôi có thể mở nó thông qua GUI bằng ConEMU.
CMCDragonkai

1
Không có dấu ngoặc kép, các đối số được trích dẫn thậm chí được phân chia lại trong khoảng trắng, @katriel. Với các trích dẫn, "$@"mở rộng đến một cái gì đó như "$1" "$2" "$3" ...và không, $@mở rộng đến $1 $2 $3....
Palec

51

Bạn có thể cần phải chạy shell Cygwin với tư cách Quản trị viên. Bạn có thể nhấp chuột phải vào phím tắt và nhấp vào chạy với tư cách quản trị viên hoặc đi vào thuộc tính của phím tắt và kiểm tra nó trong phần tương thích. Chỉ cần cẩn thận .... quyền root có thể nguy hiểm.


1
Trong ba năm kể từ khi câu hỏi này được hỏi mà không có câu trả lời hay trái ngược với cách giải quyết này, tôi đã tìm ra cách chính xác để tăng quyền cho một lệnh trong cửa sổ Cygwin còn tồn tại trong câu trả lời bên dưới. Do đó, nó hoạt động chính xác như sudotrong Linux.
dotancohen

Làm việc cho tôi trên Win10 64. Phải thay đổi quyền sở hữu các tệp được tải xuống từ máy chủ bằng rsync. chown --changes --verbose --recursive [USER] /cygdrive/c/[PATH TO FOLDER]/*. Không có nó, tôi không thể truy cập các thư mục và tập tin rsynced.
lowTechsun

25

Dựa trên câu trả lời của dotancohen Tôi đang sử dụng một bí danh:

alias sudo="cygstart --action=runas"

Hoạt động như một nét duyên dáng:

sudo chown User:Group <file>

Và nếu bạn đã cài đặt SysIternals, bạn thậm chí có thể khởi động shell lệnh vì người dùng hệ thống rất dễ dàng

sudo psexec -i -s -d cmd

9

Tôi đã tìm thấy sudo-for-cygwin , có thể nó sẽ hoạt động, đó là một ứng dụng máy khách / máy chủ sử dụng tập lệnh python để sinh ra một tiến trình con trong windows (pty) và cầu nối tty của người dùng và quá trình I / O.

Nó yêu cầu python trong windows và các mô-đun Python greenlet và eventlet trong Cygwin.


Tôi đang sử dụng điều này một thời gian và sự kiện này xử lý các công cụ tương tác như nano mà không gặp vấn đề gì!
MemphiZ


4

Có vẻ như cygstart/runaskhông xử lý đúng cách "$@"và do đó các lệnh có đối số chứa khoảng trắng (và có lẽ các ký tự meta shell khác - tôi đã không kiểm tra) sẽ không hoạt động chính xác.

Tôi quyết định chỉ viết một sudotập lệnh nhỏ hoạt động bằng cách viết một tập lệnh tạm thời thực hiện đúng các tham số.

#! /bin/bash

# If already admin, just run the command in-line.
# This works on my Win10 machine; dunno about others.
if id -G | grep -q ' 544 '; then
   "$@"
   exit $?
fi

# cygstart/runas doesn't handle arguments with spaces correctly so create
# a script that will do so properly.
tmpfile=$(mktemp /tmp/sudo.XXXXXX)
echo "#! /bin/bash" >>$tmpfile
echo "export PATH=\"$PATH\"" >>$tmpfile
echo "$1 \\" >>$tmpfile
shift
for arg in "$@"; do
  qarg=`echo "$arg" | sed -e "s/'/'\\\\\''/g"`
  echo "  '$qarg' \\" >>$tmpfile
done
echo >>$tmpfile

# cygstart opens a new window which vanishes as soon as the command is complete.
# Give the user a chance to see the output.
echo "echo -ne '\n$0: press <enter> to close window... '" >>$tmpfile
echo "read enter" >>$tmpfile

# Clean up after ourselves.
echo "rm -f $tmpfile" >>$tmpfile

# Do it as Administrator.
cygstart --action=runas /bin/bash $tmpfile

1
câu trả lời được chấp nhận không hoạt động với tôi trên Win7 nhưng câu trả lời này hoạt động như một cơ duyên. Tôi đã có thể thiết lập exim-config với các đặc quyền nâng cao và sau đó vim chỉnh sửa tệp /etc/exim.conf sau đó. Nhếch nhác.
nanker

2

Câu trả lời này dựa trên câu trả lời khác . Trước hết, hãy đảm bảo tài khoản của bạn nằm trong nhóm Quản trị viên.

Tiếp theo, tạo một tệp "runas-admin.bat" chung chung với nội dung sau:

@if (1==1) @if(1==0) @ELSE
@echo off&SETLOCAL ENABLEEXTENSIONS
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"||(
    cscript //E:JScript //nologo "%~f0" %*
    @goto :EOF
)
FOR %%A IN (%*) DO (
    "%%A"
)
@goto :EOF
@end @ELSE
args = WScript.Arguments;
newargs = "";
for (var i = 0; i < args.length; i++) {
    newargs += "\"" + args(i) + "\" ";
}
ShA=new ActiveXObject("Shell.Application");
ShA.ShellExecute("cmd.exe","/c \""+WScript.ScriptFullName+" "+newargs+"\"","","runas",5);
@end

Sau đó thực hiện các tệp bó như thế này:

./runas-admin.bat "<command1> [parm1, parm2, ...]" "<command2> [parm1, parm2, ...]"

Đối với exaxmple:

./runas-admin.bat "net localgroup newgroup1 /add" "net localgroup newgroup2 /add"

Chỉ cần đảm bảo kèm theo mỗi lệnh riêng biệt trong dấu ngoặc kép. Bạn sẽ chỉ nhận được lời nhắc UAC khi sử dụng phương thức này và quy trình này đã được khái quát hóa để bạn có thể sử dụng bất kỳ loại lệnh nào.


2

Một đề xuất mới để tăng cường SUDO cho CygWin từ GitHub trong chuỗi này , được đặt tên là TOUACExt :

  • Tự động mở sudoserver.py.
  • Tự động đóng sudoserver.py sau khi hết thời gian (mặc định 15 phút).
  • Yêu cầu nhắc nhở độ cao UAC Có / Không có kiểu cho người dùng quản trị.
  • Yêu cầu quản trị viên / mật khẩu cho người dùng không phải quản trị viên.
  • Hoạt động từ xa (SSH) với tài khoản quản trị viên.
  • Tạo nhật ký.

Vẫn trong bản Pre-Beta , nhưng dường như đang hoạt động.


1

Tôi đã đến đây thông qua google và tôi thực sự tin rằng tôi đã tìm ra cách để có được một bản gốc hoạt động đầy đủ trong cygwin.

Đây là các bước của tôi.

Trước tiên, bạn cần đổi tên tài khoản Quản trị viên Windows thành "root" Thực hiện việc này bằng cách mở manu bắt đầu và nhập "gpedit.msc"

Chỉnh sửa mục trong Chính sách máy tính cục bộ> Cấu hình máy tính> Cài đặt Windows> Cài đặt bảo mật> Chính sách cục bộ> Tùy chọn bảo mật> Tài khoản: Đổi tên tài khoản quản trị viên

Sau đó, bạn sẽ phải kích hoạt tài khoản nếu nó chưa được kích hoạt. Chính sách máy tính cục bộ> Cấu hình máy tính> Cài đặt Windows> Cài đặt bảo mật> Chính sách cục bộ> Tùy chọn bảo mật> Tài khoản: Trạng thái tài khoản quản trị viên

Bây giờ đăng xuất và đăng nhập vào tài khoản root.

Bây giờ đặt một biến môi trường cho cygwin. Để thực hiện điều đó một cách dễ dàng: Nhấp chuột phải vào Máy tính của tôi> Thuộc tính

Nhấp (trên thanh bên trái) "Cài đặt hệ thống nâng cao"

Gần phía dưới, nhấp vào nút "Biến môi trường"

Trong "Biến hệ thống", nhấp vào nút "Mới ..."

Đối với tên đặt "cygwin" mà không có dấu ngoặc kép. Đối với giá trị, nhập vào thư mục gốc cygwin của bạn. (Của tôi là C: \ cygwin)

Nhấn OK và đóng tất cả những thứ đó để quay lại màn hình nền.

Mở một thiết bị đầu cuối Cygwin (cygwin.bat)

Chỉnh sửa tập tin / etc / passwd và thay đổi dòng

Quản trị viên : chưa sử dụng: 500: 503 : U- MÁY \ Quản trị viên , S-1-5-21-12345678-1234567890-1234567890- 500: / home / Quản trị viên : / bin / bash

Về điều này (số của bạn và tên máy sẽ khác nhau, chỉ cần đảm bảo bạn thay đổi các số được tô sáng thành 0!)

root : chưa sử dụng: 0: 0 : U- MÁY \ root , S-1-5-21-12345678-1234567890-1234567890- 0: / root : / bin / bash

Bây giờ tất cả đã kết thúc, bit tiếp theo này sẽ làm cho lệnh "su" hoạt động. (Không hoàn hảo, nhưng nó sẽ hoạt động đủ để sử dụng. Tôi không nghĩ các tập lệnh sẽ hoạt động chính xác, nhưng này, bạn đã đi xa đến mức này, có thể bạn có thể tìm đường. Và hãy chia sẻ)

Chạy lệnh này trong cygwin để hoàn tất thỏa thuận.

mv /bin/su.exe /bin/_su.exe_backup
cat > /bin/su.bat << "EOF"
@ECHO OFF
RUNAS /savecred /user:root %cygwin%\cygwin.bat
EOF
ln -s /bin/su.bat /bin/su
echo ''
echo 'All finished'

Đăng xuất khỏi tài khoản root và quay lại tài khoản người dùng windows bình thường của bạn.

Sau tất cả điều đó, hãy chạy "su.bat" mới theo cách thủ công bằng cách nhấp đúp vào nó trong trình thám hiểm. Nhập mật khẩu của bạn và đi trước và đóng cửa sổ.

Bây giờ hãy thử chạy lệnh su từ cygwin và xem mọi thứ có ổn không.


1

Không hài lòng với giải pháp khả dụng, tôi đã sử dụng tập lệnh của nu774 để thêm bảo mật và giúp thiết lập và sử dụng dễ dàng hơn. Dự án có sẵn trên Github

Để sử dụng nó, chỉ cần tải về cygwin-sudo.pyvà chạy nó qua python3 cygwin-sudo.py **yourcommand**.

Bạn có thể thiết lập bí danh để thuận tiện:

alias sudo="python3 /path-to-cygwin-sudo/cygwin-sudo.py"

0

Sử dụng điều này để có được một cửa sổ quản trị với bash hoặc cmd đang chạy, từ bất kỳ thư mục bối cảnh thư mục. Chỉ cần nhấp chuột phải vào tên thư mục và chọn mục nhập hoặc nhấn nút đánh dấu.

Điều này dựa trên công cụ chere và không may là câu trả lời không hoạt động (đối với tôi) từ link_boy. Nó hoạt động tốt với tôi khi sử dụng Windows 8,

Một tác dụng phụ là màu khác nhau trong cửa sổ quản trị cmd. Để sử dụng điều này trên bash, bạn có thể thay đổi tệp .bashrc của người dùng quản trị viên.

Tôi không nhận được phiên bản "nền" (nhấp chuột phải vào thư mục mở) để chạy. Hãy thêm nó vào.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash]
@="&Bash Prompt Here"
"Icon"="C:\\cygwin\\Cygwin.ico"

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash\command]
@="C:\\cygwin\\bin\\bash -c \"/bin/xhere /bin/bash.exe '%L'\""

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash_root]
@="&Root Bash Prompt Here"
"Icon"="C:\\cygwin\\Cygwin.ico"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash_root\command]
@="runas /savecred /user:administrator \"C:\\cygwin\\bin\\bash -c \\\"/bin/xhere /bin/bash.exe '%L'\\\"\""

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_cmd]
@="&Command Prompt Here"

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_cmd\command]
@="cmd.exe /k cd %L"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_cmd_root]
@="Roo&t Command Prompt Here"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_cmd_root\command]
@="runas /savecred /user:administrator \"cmd.exe /t:1E /k cd %L\""

0

Một cách rất đơn giản để có một vỏ Cygwin và các lớp con tương ứng để hoạt động với các đặc quyền của quản trị viên là thay đổi các thuộc tính của liên kết mở lớp vỏ ban đầu.

Dưới đây là hợp lệ cho Windows 7+ (có lẽ cho cả các phiên bản trước, nhưng tôi chưa kiểm tra)

Tôi thường khởi động shell cygwin từ liên kết cygwin trong nút start (hoặc máy tính để bàn). Sau đó, tôi đã thay đổi các thuộc tính của liên kết cygwin trong các tab

/ Khả năng tương thích / Cấp đặc quyền /

và kiểm tra hộp,

"Chạy chương trình này với tư cách quản trị viên"

Điều này cho phép shell Cygwin mở với các đặc quyền của quản trị viên và các lớp con tương ứng.


Vấn đề nhỏ duy nhất là bạn không thể biết nếu nó được mở với tư cách quản trị viên.
Edwin Pratt

0

Tôi đã gặp cuộc thảo luận này để tìm kiếm một số chi tiết về việc sudotriển khai trong các hệ điều hành khác nhau. Đọc nó tôi thấy rằng giải pháp của @ brian-white ( https://stackoverflow.com/a/42956057/3627676 ) là hữu ích nhưng có thể được cải thiện một chút. Tôi tránh tạo tệp tạm thời và thực hiện để thực thi mọi thứ bằng một tập lệnh.

Ngoài ra, tôi đã nghiên cứu bước tiếp theo của cải tiến để xuất ra trong một cửa sổ / bàn điều khiển duy nhất. Thật không may, không có bất kỳ thành công. Tôi đã cố gắng sử dụng các ống có tên để chụp STDOUT / STDERR và in trong cửa sổ chính. Nhưng quá trình con không viết cho các ống được đặt tên. Tuy nhiên, viết vào một tập tin thường xuyên hoạt động tốt.

Tôi đã bỏ mọi nỗ lực để tìm ra nguyên nhân gốc rễ và để lại giải pháp hiện tại. Hy vọng bài viết của tôi có thể hữu ích là tốt.

Cải tiến:

  • không có tập tin tạm thời
  • không phân tích cú pháp và xây dựng lại các tùy chọn dòng lệnh
  • chờ lệnh nâng cao
  • sử dụng minttyhoặc bash, nếu không tìm thấy cái đầu tiên
  • trả lại mã thoát lệnh
    #! / bin / bash

    # Là Quản trị viên, gọi lệnh trực tiếp
    id -G | grep -qw 544 && {
        "$ @"
        thoát $?
    }

    # Biến CYG_SUDO được sử dụng để điều khiển lệnh gọi
    [-z "$ CYG_SUDO"] && {
        mintty = "$ (mà mintty 2> / dev / null)"
        xuất CYG_SUDO = "$$"
        cygstart --wait --action = runas $ mintty / bin / bash "$ 0" "$ @"
        thoát $?
    }

    # Bây giờ chúng tôi có thể:
    # - khởi chạy lệnh
    # - hiển thị thông báo
    # - trả lại mã thoát
    "$ @"
    RETVAL = $?

    echo "$ 0: Nhấn để đóng cửa sổ ..."
    đọc

    thoát $ RETVAL


Làm thế nào để cygstart --wait --action=runas $mintty /bin/bash "$0" "$@"không phá vỡ nếu có khoảng trắng trong một đối số? Nó luôn luôn làm cho tôi khi đi như vậy thông qua cygstart / runas.
Brian White

0

Dựa trên câu trả lời của @ mat-khor, tôi đã lấy syswin su.exe, lưu nó dưới dạngmanufacture-syswin-su.exe và viết kịch bản trình bao bọc này. Nó xử lý chuyển hướng của stdout và stderr của lệnh, vì vậy nó có thể được sử dụng trong một đường ống, v.v. Ngoài ra, đoạn script thoát với trạng thái của lệnh đã cho.

Hạn chế:

  • Các tùy chọn syswin-su hiện được mã hóa cứng để sử dụng người dùng hiện tại. Chuẩn bị env USERNAME=...cho lời gọi kịch bản ghi đè lên nó. Nếu cần các tùy chọn khác, tập lệnh sẽ phải phân biệt giữa syswin-su và các đối số lệnh, ví dụ: tách đầu tiên-- .
  • Nếu lời nhắc UAC bị hủy hoặc bị từ chối, tập lệnh sẽ bị treo.

.

#!/bin/bash
set -e

# join command $@ into a single string with quoting (required for syswin-su)
cmd=$( ( set -x; set -- "$@"; ) 2>&1 | perl -nle 'print $1 if /\bset -- (.*)/' )

tmpDir=$(mktemp -t -d -- "$(basename "$0")_$(date '+%Y%m%dT%H%M%S')_XXX")
mkfifo -- "$tmpDir/out"
mkfifo -- "$tmpDir/err"

cat >> "$tmpDir/script" <<-SCRIPT
    #!/bin/env bash
    $cmd > '$tmpDir/out' 2> '$tmpDir/err'
    echo \$? > '$tmpDir/status'
SCRIPT

chmod 700 -- "$tmpDir/script"

manufacture-syswin-su -s bash -u "$USERNAME" -m -c "cygstart --showminimized bash -c '$tmpDir/script'" > /dev/null &
cat -- "$tmpDir/err" >&2 &
cat -- "$tmpDir/out"
wait $!
exit $(<"$tmpDir/status")

-1

Không thể tự kiểm tra hoàn toàn điều này, tôi không có một kịch bản phù hợp để dùng thử và tôi không phải là chuyên gia Linux, nhưng bạn có thể hack một cái gì đó đủ gần.

Tôi đã thử các bước này và chúng 'dường như' hoạt động, nhưng không biết liệu nó có đủ cho nhu cầu của bạn không.

Để làm tròn việc thiếu người dùng 'root':

  • Tạo người dùng trên máy Windows LỘC gọi là 'root', biến nó thành thành viên của nhóm 'Quản trị viên'
  • Đánh dấu bin / bash.exe là 'Chạy với tư cách quản trị viên' cho tất cả người dùng (rõ ràng bạn sẽ phải bật / tắt tùy chọn này và khi nào bạn cần)
  • Nhấn và giữ nút shift trái trong windows explorer trong khi nhấp chuột phải vào tệp Cygwin.bat
  • Chọn 'Chạy với tư cách người dùng khác'
  • Nhập. \ Root làm tên người dùng và sau đó là mật khẩu của bạn.

Điều này sau đó chạy bạn với tư cách là người dùng có tên 'root' trong cygwin, kết hợp với 'Chạy với tư cách quản trị viên' trên tệp bash.exe có thể là đủ.

Tuy nhiên bạn vẫn cần một sudo.

Tôi đã giả mạo điều này (và một người khác có kiến ​​thức linux hơn có thể giả mạo nó tốt hơn) bằng cách tạo một tệp có tên 'sudo' in / bin và sử dụng dòng lệnh này để gửi lệnh đến su thay thế:

su -c "$*"

Dòng lệnh 'sudo vim' và những người khác dường như hoạt động tốt với tôi, vì vậy bạn có thể muốn dùng thử.

Quan tâm để biết nếu điều này làm việc cho nhu cầu của bạn hay không.


-1

Những gì tôi thường làm là có một người trợ giúp đăng ký "Mở ở đây" để mở một vỏ Cygwin với các đặc quyền quản trị khá dễ dàng từ mọi nơi trong máy tính của tôi.

Xin lưu ý rằng bạn phải cài đặt gói "chere" chere -i -mcygwin, trước tiên hãy sử dụng " " từ vỏ cygwin nâng cao.

Giả sử cài đặt cygwin của bạn là trong C: \ cygwin ...

Đây là mã đăng ký:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash]

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash]
@="Open Cygwin Here as Root"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash\command]
@="c:\\cygwin\\bin\\mintty.exe -i /Cygwin-Terminal.ico -e /bin/xhere /bin/bash.exe"

[-HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here as Root"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="c:\\cygwin\\bin\\mintty.exe -i /Cygwin-Terminal.ico -e /bin/xhere /bin/bash.exe"

[-HKEY_CLASSES_ROOT\Drive\shell\cygwin_bash]

[HKEY_CLASSES_ROOT\Drive\shell\cygwin_bash]
@="Open Cygwin Here as Root"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Drive\shell\cygwin_bash\command]
@="c:\\cygwin\\bin\\mintty.exe -i /Cygwin-Terminal.ico -e /bin/xhere /bin/bash.exe"

Hi vọng điêu nay co ich. Hãy cho tôi biết nếu nó làm việc cho bạn. Cảm ơn.

PS: Bạn có thể lấy mã này, sao chép và dán mã và lưu nó vào tệp name.reg để chạy nó ... hoặc bạn có thể thêm các giá trị theo cách thủ công.


-5

Thử:

chmod -R ug+rwx <dir>

nơi <dir>là thư mục mà bạn muốn thay đổi điều khoản.


5
Làm thế nào điều đó sẽ làm cho anh ta root, như anh ta yêu cầu?
Nikana Reklawyks
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.