সিএনোলজি এনএএস-এ / বিন / ব্যাশ শেল ব্যবহার করে কোনও অ্যাকাউন্টে এসএসএইচ দিয়ে লগ ইন করতে পারবেন না


30

আমি এম্বেড থাকা ডিভাইসে চলমান একটি এআরএম লিনাক্সের ডিফল্ট শেল হিসাবে বাশ ইনস্টল করার চেষ্টা করছি (সিএনোলজি ডিএস 212 + এনএএস)। তবে সত্যিই কিছু ভুল আছে এবং আমি এটি বুঝতে পারি না এটি কী।

লক্ষণ:

1) রুটে ডিফল্ট শেল হিসাবে / বিন / ব্যাশ রয়েছে এবং এসএসএইচের মাধ্যমে সাধারণত লগ ইন করতে পারে:

$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash

$ ssh root@NAS
root@NAS's password:
Last login: Sun Dec 16 14:06:56 2012 from desktop
# 


2) জোয়েসারের কাছে ডিফল্ট শেল হিসাবে / বিন / ব্যাশ রয়েছে এবং এসএসএইচ দিয়ে লগ ইন করার চেষ্টা করার সময় "অনুমতি অস্বীকার" পেয়ে থাকে:

$ grep joeuser /etc/passwd
joeuser:x:1029:100:Joe User:/home/joeuser:/bin/bash

$ ssh joeuser@localhost
joeuser@NAS's password:
Last login: Sun Dec 16 14:07:22 2012 from desktop
Permission denied, please try again.
Connection to localhost closed.


3) জোয়েসারের শেলটি / বিন / এস-তে ফিরে আসা:

$ grep joeuser /etc/passwd
joeuser:x:1029:100:Joe User:/home/joeuser:/bin/sh

$ ssh joeuser@localhost
Last login: Sun Dec 16 15:50:52 2012 from localhost
$ 


জিনিসগুলিকে আরও অদ্ভুত করতে, আমি /bin/bashসিরিয়াল কনসোল (!) ব্যবহার করে জোয়েসার হিসাবে লগ ইন করতে পারি । su - joeuserরুট হিসাবে একটি সূক্ষ্ম কাজ করে, তাই ব্যাশ বাইনারি নিজেই সূক্ষ্মভাবে কাজ করছে।

হতাশার কারণে আমি জোয়েসারের ইউডকে 0 / / এ / পাসডাব্লুতে পরিবর্তন করেছিলাম, তবে কাজও করি নি, সুতরাং এটি অনুমতি সম্পর্কিত কিছু বলে মনে হচ্ছে না।

দেখে মনে হচ্ছে যে বাশ কিছু অতিরিক্ত চেক করছে যা sshd পছন্দ করে না, এবং অ-রুট ব্যবহারকারীদের জন্য সংযোগগুলি অবরুদ্ধ করছে। সম্ভবত কিছু ধরণের বিচক্ষণতা যাচাই করা - বা টার্মিনাল এমুলেশন - যা SIGCHLD ট্রিগার করে তবে কেবল এসএসএসের মাধ্যমে কল করা হলে।

আমি ইতিমধ্যে sshd_config- এর প্রতিটি আইটেম দিয়েছি এবং এসএসএইচডি ডিবাগ মোডে রেখেছি, কিন্তু কোনও অদ্ভুত কিছুই পাইনি। এখানে আমার /etc/ssh/sshd_config:

LogLevel DEBUG
LoginGraceTime 2m
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys
ChallengeResponseAuthentication no
UsePAM yes
AllowTcpForwarding no
ChrootDirectory none
Subsystem       sftp    internal-sftp -f DAEMON -u 000


এবং আউটপুটটি এখানে /usr/syno/sbin/sshd -d, শেল হিসাবে / বিন / বাশ দিয়ে লগ ইন করার চেষ্টা করা জোয়েজারের ব্যর্থ প্রচেষ্টা দেখিয়েছে:

debug1: Config token is loglevel
debug1: Config token is logingracetime
debug1: Config token is permitrootlogin
debug1: Config token is rsaauthentication
debug1: Config token is pubkeyauthentication
debug1: Config token is authorizedkeysfile
debug1: Config token is challengeresponseauthentication
debug1: Config token is usepam
debug1: Config token is allowtcpforwarding
debug1: Config token is chrootdirectory
debug1: Config token is subsystem
debug1: HPN Buffer Size: 87380
debug1: sshd version OpenSSH_5.8p1-hpn13v11
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: private host key: #1 type 2 DSA
debug1: read PEM private key done: type ECDSA
debug1: private host key: #2 type 3 ECDSA
debug1: rexec_argv[0]='/usr/syno/sbin/sshd'
debug1: rexec_argv[1]='-d'
Set /proc/self/oom_adj from 0 to -17
debug1: Bind to port 22 on ::.
debug1: Server TCP RWIN socket size: 87380
debug1: HPN Buffer Size: 87380
Server listening on :: port 22.
debug1: Bind to port 22 on 0.0.0.0.
debug1: Server TCP RWIN socket size: 87380
debug1: HPN Buffer Size: 87380
Server listening on 0.0.0.0 port 22.

debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 6 out 6 newsock 6 pipe -1 sock 9
debug1: inetd sockets after dupping: 4, 4
Connection from 127.0.0.1 port 52212
debug1: HPN Disabled: 0, HPN Buffer Size: 87380
debug1: Client protocol version 2.0; client software version OpenSSH_5.8p1-hpn13v11
SSH: Server;Ltype: Version;Remote: 127.0.0.1-52212;Protocol: 2.0;Client: OpenSSH_5.8p1-hpn13v11
debug1: match: OpenSSH_5.8p1-hpn13v11 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.8p1-hpn13v11
debug1: permanently_set_uid: 1024/100
debug1: MYFLAG IS 1
debug1: list_hostkey_types: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: AUTH STATE IS 0
debug1: REQUESTED ENC.NAME is 'aes128-ctr'
debug1: kex: client->server aes128-ctr hmac-md5 none
SSH: Server;Ltype: Kex;Remote: 127.0.0.1-52212;Enc: aes128-ctr;MAC: hmac-md5;Comp: none
debug1: REQUESTED ENC.NAME is 'aes128-ctr'
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: expecting SSH2_MSG_KEX_ECDH_INIT
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done
debug1: userauth-request for user joeuser service ssh-connection method none
SSH: Server;Ltype: Authname;Remote: 127.0.0.1-52212;Name: joeuser
debug1: attempt 0 failures 0
debug1: Config token is loglevel
debug1: Config token is logingracetime
debug1: Config token is permitrootlogin
debug1: Config token is rsaauthentication
debug1: Config token is pubkeyauthentication
debug1: Config token is authorizedkeysfile
debug1: Config token is challengeresponseauthentication
debug1: Config token is usepam
debug1: Config token is allowtcpforwarding
debug1: Config token is chrootdirectory
debug1: Config token is subsystem
debug1: PAM: initializing for "joeuser"
debug1: PAM: setting PAM_RHOST to "localhost"
debug1: PAM: setting PAM_TTY to "ssh"
debug1: userauth-request for user joeuser service ssh-connection method password
debug1: attempt 1 failures 0
debug1: do_pam_account: called
Accepted password for joeuser from 127.0.0.1 port 52212 ssh2
debug1: monitor_child_preauth: joeuser has been authenticated by privileged process
debug1: PAM: establishing credentials
User child is on pid 9129
debug1: Entering interactive session for SSH2.
debug1: server_init_dispatch_20
debug1: server_input_channel_open: ctype session rchan 0 win 65536 max 16384
debug1: input_session_request
debug1: channel 0: new [server-session]
debug1: session_new: session 0
debug1: session_open: channel 0
debug1: session_open: session 0: link with channel 0
debug1: server_input_channel_open: confirm session
debug1: server_input_global_request: rtype no-more-sessions@openssh.com want_reply 0
debug1: server_input_channel_req: channel 0 request pty-req reply 1
debug1: session_by_channel: session 0 channel 0
debug1: session_input_channel_req: session 0 req pty-req
debug1: Allocating pty.
debug1: session_new: session 0
debug1: session_pty_req: session 0 alloc /dev/pts/1
debug1: server_input_channel_req: channel 0 request shell reply 1
debug1: session_by_channel: session 0 channel 0
debug1: session_input_channel_req: session 0 req shell
debug1: Setting controlling tty using TIOCSCTTY.

debug1: Received SIGCHLD.
debug1: session_by_pid: pid 9130
debug1: session_exit_message: session 0 channel 0 pid 9130
debug1: session_exit_message: release channel 0
debug1: session_by_tty: session 0 tty /dev/pts/1
debug1: session_pty_cleanup: session 0 release /dev/pts/1
Received disconnect from 127.0.0.1: 11: disconnected by user
debug1: do_cleanup
debug1: do_cleanup
debug1: PAM: cleanup
debug1: PAM: closing session
debug1: PAM: deleting credentials


এখানে আপনার কাছে sshd -dd এর সম্পূর্ণ আউটপুট রয়েছে, একসাথে ssh -vv এর সাথে

ব্যাশ:

# bash --version
GNU bash, version 3.2.49(1)-release (arm-none-linux-gnueabi)
Copyright (C) 2007 Free Software Foundation, Inc.

বাশ বাইনারি উত্স থেকে ক্রস সংকলিত ছিল। আমি অপ্টওয়ার বিতরণ থেকে একটি প্রাক-সংকলিত বাইনারি ব্যবহার করার চেষ্টাও করেছি , তবে ঠিক একই সমস্যা ছিল। আমি ব্যবহার করে ভাগ করা লাইব্রেরি অনুপস্থিত জন্য চেক করেছি objdump -x, কিন্তু তারা সব সেখানে আছে।

এই " অনুমতি প্রত্যাখ্যান করা হয়েছে কি কারণ কোন ধারণা , দয়া করে আবার চেষ্টা করুন ?" আমি তদন্ত করতে বাশ সোর্স কোডটিতে প্রায় ডাইভিং করছি, তবে নির্বোধ হতে পারে এমন কোনও কিছু তাড়ানোর জন্য ঘন্টাগুলি এড়াতে চেষ্টা করছি।

সম্পাদনা: ব্যাশ এবং সিস্টেম সম্পর্কে আরও তথ্য যুক্ত করা

$ ls -la /bin/bash
-rwxr-xr-x    1 root     root        724676 Dec 15 23:57 /bin/bash

$  file /bin/bash
/bin/bash: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, stripped

$  uname -a
Linux NAS 2.6.32.12 #2661 Mon Nov 12 23:10:15 CST 2012 armv5tel GNU/Linux synology_88f6282_212+

$ grep bash /etc/shells
/bin/bash
/bin/bash2


/ বিন / বাশ কি / ইত্যাদি / শেলগুলিতে তালিকাভুক্ত?
Tink

হ্যাঁ, এটি / ইত্যাদি / শেলগুলিতে তালিকাভুক্ত। এবং অনুমতিগুলি 0755, উপরে যুক্ত করা হয়েছে।
গুই অ্যামব্রোস

সম্ভবত তার .bashrc ফাইলটিতে কিছু চলছে। আপনি কি profile joeuser / .bashrc বিড়াল করতে পারেন এবং তার প্রোফাইল স্ক্রিপ্টগুলির চারপাশে ঝাঁকুনি দিতে পারেন? লগ ইন করার সময় আপনি চালাতে / বিন / বাশ চেষ্টা করতে পারেন।
ভিসফন

কোনও oe joeuser / .ssh এবং কোনও প্রোফাইল স্ক্রিপ্ট নেই। এটি খালি ব্যবহারকারীর, যা আমি পরীক্ষার জন্য তৈরি করেছি।
গুই অ্যামব্রস

উত্তর:


39

ভবিষ্যতের রেফারেন্সের জন্য: এই সমস্যাটি অনুসন্ধান এবং ডিবাগ করার পরেও অনেক ঘন্টা পরে, আমি অবশেষে এর মূল কারণটি আবিষ্কার করেছি।

সিনোলজির দ্বারা ব্যবহৃত ওপেনএসএসএইচ সংস্করণটি একটি অত্যন্ত স্বনির্ধারিত সংস্করণ, এটি মূল কোডের মতো আচরণ করে না । এতে প্রচুর হ্যাক এবং অ্যাডহক কাস্টমাইজেশন রয়েছে - যেমন, ওয়েব ইন্টারফেসের মধ্যে এসএসএইচ পরিষেবাটি সক্ষম করা আছে কিনা তা জানতে, বা আরএসসিএনসি কমান্ডগুলি থেকে বিশেষ অক্ষর (;,,, ') কেটে নেওয়া বা .. ... এটির জন্য অপেক্ষা করুন ... নিয়মিত ব্যবহারকারীদের / বিন / শ বা / বিন / ছাইয়ের চেয়ে আলাদা শেল ব্যবহার করা এড়ানো । হ্যাঁ, বাইনারি মধ্যে শক্ত কোডড।

ওপেনএসএসএইচ 5.8p1 থেকে কোডের টুকরোটি রয়েছে, যেমন তাদের উত্স কোডে সিএনওলজি দ্বারা বিতরণ করা হয়েছে (ডিএসএম 4.1 - শাখা 2636) , ফাইল session.c:

void do_child(Session *s, const char *command)
{
...

#ifdef MY_ABC_HERE
   char szValue[8];
   int RunSSH = 0;
   SSH_CMD SSHCmd = REQ_UNKNOWN;

   if (1 == GetKeyValue("/etc/synoinfo.conf", "runssh", szValue, sizeof(szValue))) {
           if (strcasecmp(szValue, "yes") == 0) {
                   RunSSH = 1;
           }
   }

   if (IsSFTPReq(command)){
           SSHCmd = REQ_SFTP;
   } else if (IsRsyncReq(command)){
           SSHCmd = REQ_RSYNC;
   } else if (IsTimebkpRequest(command)){
           SSHCmd = REQ_TIMEBKP;
   } else if (RunSSH && IsAllowShell(pw)){
           SSHCmd = REQ_SHELL;
   } else {
           goto Err;
   }

   if (REQ_RSYNC == SSHCmd) {
           pw = SYNOChgValForRsync(pw);
   }
   if (!SSHCanLogin(SSHCmd, pw)) {
           goto Err;
   }
   goto Pass;

 Err:
   fprintf(stderr, "Permission denied, please try again.\n");
   exit(1);

 Pass:
   #endif /* MY_ABC_HERE */
...
}


আপনি যেমন কল্পনা করতে পারেন, IsAllowShell(pw)দোষী ছিলেন:

static int IsAllowShell(const struct passwd *pw)
{
     struct passwd *pUnPrivilege = NULL;
     char *szUserName = NULL;
     if (!pw || !pw->pw_name) {
             return 0;
     }
     szUserName = pw->pw_name;
     if(!strcmp(szUserName, "root") || !strcmp(szUserName, "admin")){
             return 1;
     }
     if (NULL != (pUnPrivilege = getpwnam(szUserName))){
             if (!strcmp(pUnPrivilege->pw_shell, "/bin/sh") || 
                     !strcmp(pUnPrivilege->pw_shell, "/bin/ash")) {
                     return 1;
             }
     }
     return 0;
}


আমি কেন এইরকম অদ্ভুত আচরণটি অনুভব করছিলাম তা অবাক হওয়ার কিছু নেই। রুট বা প্রশাসকের চেয়ে পৃথক ব্যবহারকারীদের জন্য কেবল শেল / বিন / শ এবং / বিন / অ্যাশ গ্রহণ করা হবে । এবং এটি ইউআইডি নির্বিশেষে (আমি জোয়েসার ইউআইডি = 0 তৈরিরও পরীক্ষা করেছিলাম এবং এটি কার্যকর হয়নি। এখন এটি স্পষ্ট কারণ)।

একবার কারণটি সনাক্ত করা গেলে সমাধানটি সহজ ছিল: কেবল ইসএলওশেল () এ কল সরিয়ে ফেলুন । ওপেনশ এবং এর সমস্ত নির্ভরতা ক্রস-কম্পাইল করার সঠিক কনফিগারেশন পেতে আমার কিছুটা সময় লেগেছে, তবে শেষ পর্যন্ত এটি ভালভাবে কাজ করেছে।

কেউ যদি একই কাজ (অথবা ক্রস কম্পাইল অন্যান্য কার্নেল মডিউল বা Synology জন্য বাইনেরিতে বের করার চেষ্টা) আগ্রহী, এখানে আমার সংস্করণ Makefile নামক । এটি ওপেনএসএইচ -5.8p1 উত্স দিয়ে পরীক্ষা করা হয়েছিল এবং মার্ভেল কার্কউড এমভি 6281 / এমভি 6282 সিপিইউ (ডিএস 212 এর মতো) চালিত মডেলগুলির সাথে ভাল কাজ করে। আমি একটি হোস্ট উবুন্টু 12.10 এক্স 64 চালিত ব্যবহার করেছি।

নীচের লাইন: খারাপ অনুশীলন, ভয়ানক কোড এবং কী করবেন না তার দুর্দান্ত উদাহরণ । আমি কখনও কখনও বুঝতে পারি যে OEMs কে বিশেষ কাস্টমাইজেশন বিকাশ করতে হবে তবে খুব গভীর খননের আগে তাদের দুবার চিন্তা করা উচিত। এটি কেবল তাদের জন্য অবিস্মরণীয় কোডের ফলস্বরূপ নয়, রাস্তাঘাটে সমস্ত ধরণের অপ্রত্যাশিত সমস্যা তৈরি করে। ধন্যবাদ তাদের খাঁটি - ও খোলা রাখতে জিপিএল উপস্থিত রয়েছে।


4
এই সমস্যাটি তদন্ত করতে এবং সিন্ডোলজি পর্যায় থেকে পর্দাটি আবার টেনে তোলার ক্ষেত্রে স্টারারের কাজ স্যার। আমি অবশ্যই এখন অবধি আমার ডিস্কস্টেশনটি সম্পর্কে অত্যন্ত উচ্চমাত্রায় ভেবে দেখেছিলাম যেহেতু এটি খুব দরকারী এবং একবার বুটস্ট্র্যাপ করা এখন নতুন টাস্ক শিডিয়ুলারের অধীনে আমার জন্য কিছু স্ক্রিপ্টও চালাচ্ছে। তবে আপনি এখানে স্বল্পদৃষ্টির নকশায় কিছু ত্রুটিগুলি প্রকাশ করেছেন। আমি এখনও ডিস্কস্টেশন নিয়ে সন্তুষ্ট তবে আপনার পোস্টটি মাথায় রাখব। পোস্ট এবং উত্তর উভয়ই উত্সাহিত।
বার্নার্ড ডাই

প্রচেষ্টার জন্য উত্সাহিত। আমি যদি সিরিয়াল সংযোগগুলি করতে বিরক্ত করতে না চাই তবে আমি কেবল ডিফল্ট শেলটি পরিবর্তন করতে চাই /bin/sh, এটি করার কোনও উপায় আছে কি?
ভিসারি

সিনোলজিক কেন এটি করবে তা সম্পূর্ণ আমার বাইরে :(
গারহার্ড বার্গার

আমি নতুন নামকরণ /bin/ashকরা /bin/ash.realএবং লিঙ্ক zsh/bin/ash... এতদূর সবকিছু ঠিক বলে মনে হয় ... o_o
x1a0

7

সমস্যাটি সমাধান করার জন্য, এবং যেহেতু আমি ইপকিজির মাধ্যমে ব্যাশ ইনস্টল করেছি এবং আমি নিশ্চিত হতে পারি না / অপ্ট সর্বদা পাওয়া যাবে (সঠিকভাবে মাউন্ট করা হয়েছে), তাই আমি কেবল আমার। প্রোফাইলে নিম্নলিখিতটি রেখেছি

[ -x /opt/bin/bash ] && exec /opt/bin/bash

যখন / ইত্যাদি / পাসডাব্লুটিতে শেল হিসাবে / বিন / অ্যাশ থাকে।


1

দেখা যাক. এটি একটি একক শেলের সাথে বিচ্ছিন্ন, এছাড়াও আপনি এসএসডিডি ডিবাগ আউটপুটটির দিকে তাকাচ্ছেন, সুতরাং এটি writ জোয়েসার / .ssh সহ বিশ্ব লিখনযোগ্য অনুমতি সমস্যা নয়। বেশিরভাগ লোকই এমন হয়।

আপনি কি অতিরিক্ত সাধারণ ব্যবহারকারী (যেমন জোসেজার নয়) তৈরি করার চেষ্টা করেছেন যাতে এটি একই সমস্যার সম্মুখীন হয়? এটি এটি ব্যবহারকারীর কনফিগারেশন বনাম সিস্টেম-ওয়াইড কনফিগারেশনে পৃথক হয়ে যাবে।

যদি এটি সিস্টেম-ব্যাপী সমস্যা হয় তবে পরবর্তী জিনিসটি আমি / etc / প্রোফাইলের মতো ভাগ করা কনফিগারেশন ফাইলগুলি দেখে যা প্রত্যেকের দ্বারা উত্সাহিত হয়। শর্তযুক্ত ব্লক থাকতে পারে যা ব্যবহারকারীর নামটি রুট হলে গুলি ছোঁড়াচ্ছে না। (কার্যকর ব্যবহারকারী নয়, যেহেতু আপনি ইতিমধ্যে এর জন্য পরীক্ষা করেছেন)

আপনি যদি ইতিমধ্যে না করে থাকেন তবে বিভাগ বিভাগীয় ত্রুটি প্রতিবেদনগুলির জন্য ডেমসগ পরীক্ষা করে দেখুন, এমনকি যদি এমন কিছু অদ্ভুতও চলছে।


ধন্যবাদ অ্যান্ড্রু ডেমস্যাগও চেক করেছে এবং একেবারে কিছুই নয় nothing একেবারে নতুন ব্যবহারকারী তৈরি করাও সহায়তা করেনি, সুতরাং এটি স্পষ্টতই একটি সিস্টেম বিস্তৃত সমস্যা। এবং জোয়েসার সাধারণত লগইন করতে পারে যদি আমি শেলটি / বিন / ছাইতে আবার পরিবর্তন করি, যা কোনও / ইত্যাদি / প্রোফাইল বা অন্যান্য (যা আমিও পরীক্ষা করেছিলাম, বিটিডাব্লু) বিধি বিধান করে। এটি কেবল এস-এস-এর মাধ্যমে ব্যাশ ব্যবহার করে অ-রুট সহ। এই বিষয় হিসাবে এটি এমনকি সত্যিকারের সমস্যা নয় (এটি এখন যেমন রয়েছে তেমনভাবে আমি বেঁচে থাকতে পারি) তবে এটি আমাকে অস্বীকার করে যে আমি স্বীকার করতে পারি যে আমি এই অদ্ভুত আচরণের কারণ খুঁজে পাইনি। এটি সর্বোপরি একটি নির্বিচার ব্যবস্থা; সেখানে আবশ্যক ব্যাখ্যা কিছু বাছাই হতে ...
Gui থেকে Ambros

1

AllowUser- এর
জন্য / etc / ssh / sshd_config অনুসন্ধান করে দেখুন

সেখানে যদি জোয়েসার যুক্ত করার চেষ্টা করা হয় তবে কেবল ব্যবহারকারী নাম দিন

এছাড়াও এটি পামে অবরুদ্ধ হতে পারে ... কোন ফাইলটি তা আমি মনে করি না ...


ক্ষেত্র না. যদি এটি AllowUser গুলিতে সমস্যা হয় তবে আমি শেলটি / বিন / ছাইতে পরিবর্তন করার সময় জোয়েসারের সাথে লগ ইন করতে দেয় না। এটি সুরক্ষা সম্পর্কিত কোনও কিছুর সাথে বা অন্য কোনও কনফিগারেশনের সাথে সম্পর্কিত বলে মনে হচ্ছে না। এটি সম্ভবত কিছু প্রকারের মধ্যে ssh, বনাম ছাই, সিএস, ইত্যাদির মাধ্যমে সিউডো টার্মিনালগুলি কীভাবে পরিচালনা করে
গুই অ্যামব্রস

1

ওপেনশনের তাদের পরিবর্তিত সংস্করণটি /bin/shশেলের সন্ধান করে?

সহজ সমাধান তারপর:

ln -fs / বিন / বাশ / বিন / শ


এটি সমস্ত ব্যবহারকারীর জন্য শেল পরিবর্তন করবে এবং কেবল বাশগুলির প্রয়োজন নেই those এছাড়াও যে কোনও নতুন আপগ্রেড প্রতীকী লিঙ্কটি সরিয়ে ফেলবে (যদিও ওপেনশাকে ফিক্স করার ক্ষেত্রেও একই সমস্যা রয়েছে)। যাইহোক, উপরে বর্ণিত হিসাবে এটি সমাধান করা হয়েছিল।
গুই অ্যামব্রোস

ঠিক আছে, তবে আমি আমার এনএএস-এ একমাত্র ব্যবহারকারী হিসাবে এই সমাধানটি আমার পক্ষে কাজ করে। যাইহোক আপনি কী আবিষ্কার করেছেন তা নির্দেশ করার জন্য ধন্যবাদ।
পনিটেক

0

ব্যাশ পুনরায় ইনস্টল করার চেষ্টা করুন এবং দেখুন এটি সহায়তা করে কিনা।


নাফস, আমি দুটি ভিন্ন উত্স থেকে বাশ পেয়েছি (অপ্টওয়ার বিতরণ থেকে একটি, এবং আমি উত্স থেকে নিজেও ৩.২ সংকলন করেছি) এবং একই সমস্যা। আমি এমনকি বাশ 4.2 পেয়ে এবং প্যাচগুলি প্রয়োগ করে (তাদের 39 টি) এবং ক্রস সংকলনের চূড়ান্ত স্থানে গিয়েছিলাম। ঠিক একই আচরণ রুট দিয়ে কাজ করে, অনুমতি অন্যের জন্য অস্বীকার করে। আমার শেষ অনুমানটি ওপেনএসএসএইচ বাইনারি, যা সাইনোলজির ফার্মওয়্যার দ্বারা ডিফল্টরূপে একই ইনস্টল। এটিই আমি একমাত্র টুকরো যা এখনও স্পর্শ করি নি। আমি কী ঘটছে তা দেখার জন্য সর্বশেষ উত্সটি ডাউনলোড এবং ক্রস সংকলন চেষ্টা করব।
গুই অ্যামব্রস

2
অদ্ভুত নিশ্চিত না তবে এটি authconfig সমস্যা বলে মনে হচ্ছে। Ldap সার্ভারে চলছে কি? আপনি আমাকে লগইন ব্যর্থতার সময়ে সুরক্ষিত এবং বার্তা ফাইলের রিয়েল টাইম লগ আউটপুট প্রেরণ করতে পারেন?
প্রতাপ

2
এছাড়াও সার্ভারে রুট হিসাবে লগইন করুন এবং ব্যবহারকারীর শেলটি / বিন / বাশ হতে দিন এবং su - ব্যবহারকারীর নাম ব্যবহার করে ব্যবহারকারীর স্যুইচ করার চেষ্টা করুন। আমাকেও এর আউটপুট দেখান।
প্রতাপ

0

যদি কেউ এইজন্য হোঁচট খায় কারণ তারাও আমার একই ভুল করেছে:

হ্যাঁ: $ sudo usermod -s /bin/bash your_username

No: $ sudo usermod -s bash your_username

2 য় শশ ইন করার পরে অনুমতি অস্বীকারের ফলাফল করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.