Root Rechte + WinSCP + und NC von Daniel Hansson

Meine NC ist von Daniel Hansson. Seine NC erfüllt die aktuellen Sicherheitsstandards, das ist auch gut und richtig. Um mir das Leben, die ein oder andere Recherche und Konfiguration zu erleichtern habe ich in der Vergangenheit z.B. die /etc/ssh/sshd_config bearbeitet um mir dauerhaft eine Root Sitzung zu aktivieren. In den neueren NC Versionen von DH ist das nicht mehr möglich. Ich melde mich als ncadmin an und wenn ich irgendetwas machen möchte schreibe ich sudo und gebe erneut ein Kennwort ein. Das stört mich nicht, wie gesagt alles was mit Sicherheit zu tun hat finde ich gut! Was mich tatsächlich stört ist, dass ich mit WinSCP nicht mehr überall hin komme um Dateien hochzuladen oder Änderungen in Konfigurationsdateien vornehmen zu können.

Gibt es eine Möglichkeit oder habt Ihr eine Idee, ein Schalter um kurzfristig mit WinSCP Root Recht zu erlangen und nach Abschluss der Arbeit, der Änderung diesen wieder zurückzustellen?

Ich nutze meine NC ausschließlich privat bin auch EDV affin und weiß in den meisten Fällen was ich tue bin aber leider nicht so versiert im Umgang mit Linux / Unix. Bis ich eine Datei irgendwo hochgeladen habe, Änderungen, Anpassungen vorgenommen habe …. das dauert bei mir Ewig, weil ich dort nicht hinkomme, dafür war WinSCP für mich immer Perfekt gewesen.

Danke

Das sudo-Problem bzgl. “ncadmin” auf wahrscheinlich “www-data” kannst du über /etc/sudoers lösen, die du jedoch als “root” mit “visudo” editieren solltest. Im Internet findest du entsprechende Anleitungen dazu. Wenn du relevante Teile aus deiner /etc/sudoers hier postet, können wir dir entsprechend korrekte Konfiugurationen dazu posten.

Um als root Dateien per sftp (WinSCP) auf den Server zu kopieren, musst du den Zugriff als “root” in /etc/ssh/sshd_config wieder aktivieren. Denk daran den SSHD zu reloaden. Aus Sicherheitsgründen kannst du SSH-Keys verwenden. Leider kenne ich mich bzgl. Windows und WinSCP damit nicht aus. Wenn du jedoch SSH-Keys für root verwendest, musst du dann erneut in /etc/ssh/sshd_config den Zugriff von “root” von per Passwort dann ändern auf nur per SSH-Key.

https://linux.die.net/man/5/sudoers
https://linux.die.net/man/5/sshd_config

2 Likes

Hi @devnull vielen Dank für deine ausführliche Antwort. Ich werde eine weile brauchen bis ich das umgesetzt habe …. aber das ist kein Problem, ich werde mich dann hier Schritt für Schritt melden.

Zusammenfassung für mich zum Verständnis:

Zuerst benötige ist einen „root“ User. Unteranderem auch um die Konfigurationsdatei „sudoers“ mit dem „visudo“ Editor als „root“ editieren zu können.

Vorgeschichte:
Als ich vor kurzem in der NC einen „root“ User angelegt habe, vorher habe ich die „sshd_config“ editiert und mich dann mit root angemeldet, begann/rannte sofort der NC-Installationsassistent wieder los um NC erneut zu installieren. Ich konnte den Vorgang nur abbrechen um meine bestehende NC-Installation nicht zu gefährden.

Ich glaube Daniel Hansson hat es so eingestellt, das wenn man sich nicht als ncadmin, sondern als root anmeldet sofort eine neue Installation durchgeführt wird. Kann das sein? Wenn dem so sein sollte … irgendeine Idee was man da machen kann?

Ich glaube das ich die Erstinstallation nicht als ncadmin ausführen darf, sondern zuerst versuchen muss den root User anzulegen um mit diesem die Installation zu starten….

Also mein Problem ist, wie kann ich einen root User anlegen ohne das sofort eine neu Installation durchgeführt wird.

Kannst du nicht mit
sudo -s
zu root wechseln?

Wenn ja kannst du /etc/ssh/sshd_config entsprechend ändern.
Denk dran den SSH-Server bzgl. sftp neu zu starten.

kannst du die mal posten, dann kann man dir ggf. sagen, was du wo was ändern musst, damit sich root wieder anmelden kann.

du nutzt hoffentlich einen ssh key, um dich als root anzumelden. passwörter sind 80ziger.

das eingeben des password kann man duch einfügen eine NOPASSWD an der richtigen stelle ebenfalls abschalten.

z.b.: /etc/sudoers.d/10-nextcloud

nextcloud  ALL=(ALL)       NOPASSWD: ALL

oder mal mit sudo visudo in die /etc/sudoers schauen.

visudo prüft beim schließen, ob der syntax stimmt. falls der nicht stimmt, wird die datei nich gespeichert, weil es sein kann, dass sudo dann nicht mehr geht. das wäre doof. :wink:

Hi @ devnull

Sorry, wegen dem sudo -s das ist meine Unwissenheit, ich habe es jetzt damit ausprobiert und möchte kurz aufzeigen was ich gemacht habe und wie weit ich gekommen bin.

Zuerst habe ich von der NC-VM ein Snapshot erstellt, ich kann also jeder Zeit zurück :wink:

  1. sudo -s ausgeführt, danach war ich root
    Bild-469

  2. Dann die sshd_config editiert
    Vorher:
    Bild-470

Nachher, bearbeitet:
Bild-471

  1. Service durchgestartet:
    Bild-473

  2. Root User angelegt:
    Bild-474

  3. NC-VM durchgestartet
    Bild-476

Nach dem Neustart der NC-VM beginnt sofort automatisch ein Assistent:

Dann kommt dieses Hinweisfenster:

Ich habe das mal via google Translator übersetzt:

Sie scheinen dies als reiner Root-Benutzer auszuführen. Sie müssen dies als normaler Benutzer mit Sudo-Berechtigungen ausführen. “Bitte erstellen Sie einen Benutzer mit sudo-Berechtigungen und führen Sie diesen Befehl aus:”
“sudo -u [Benutzer mit Sudo-Berechtigungen] sudo bash”
Wir werden das für Sie tun, wenn Sie OK drücken.

Dann kommt danach eine weitere Hinweismeldung:

Aktueller Benutzer mit Sudo-Berechtigungen ist :.
Dieses Skript richtet alles mit diesem Benutzer ein.
"Wenn das Feld nach ‘:’ leer ist, werden Sie wahrscheinlich als reine Wurzel ausgeführt.
Es ist möglich, mit root zu installieren, aber es wird kleinere Fehler geben. “Bitte erstellen Sie einen Benutzer mit Sudo-Berechtigungen, wenn Sie ein optimales” möchten. Installation. Der bevorzugte Benutzer ist ‘ncadmin’.

Nachdem ich mit OK bestätigt habe soll ich einen neuen User anlegen:

Bild-487

An der Stelle habe ich jetzt abgebrochen und keinen neuen User erstellt sowie den vorherigen Zustand wiederhergestellt.

@Reiner_Nippes

Meine sshd_config … wie kann man hier ein Spoiler Fenster hinzufügen?
Danke an @Reiner_Nippes für Die Lösung

# OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $
# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

LoginGraceTime 2m
#PermitRootLogin prohibit-password
PermitRootLogin yes
StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile	.ssh/authorized_keys .ssh/authorized_keys2

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

# override default of no subsystems
Subsystem	sftp	/usr/lib/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#	X11Forwarding no
#	AllowTcpForwarding no
#	PermitTTY no
#	ForceCommand cvs server
##############################################```

So sieht bei mir die sudoers aus:
![Bild-494|690x429](upload://bXDVf1xonlQCbC0d0wQ1Vy2bnZ8.jpeg)

Dein Provider startet den Dialog beim Start wahrscheinlich über systemd. Such es und deaktiviere es oder lebe mit der Einschränkung.

du kannst den inhalt der Datei in drei ``` einbetten. eine zeile davor und dahinter. dann sieht das so aus:

##############################################
# OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
Ciphers and keying

#RekeyLimit default none
Logging

#SyslogFacility AUTH
#LogLevel INFO
Authentication:

LoginGraceTime 2m
#PermitRootLogin prohibit-password
PermitRootLogin yes
StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

den text aus dem terminalfenster kannst du so auch einfach hier reinstellen. text in putty auswählen, dann ist er automatisch in der zwischenablage.
für mehr möglichkeiten den text zu formatieren, google mal markdown language.

sudo

prüfe mal mit id ncadmin ob ncadmin zur gruppe admin gehört. wenn ja die zeile

%admin ALL=(ALL)       ALL

ändern in

%admin ALL=(ALL)       NOPASSWD:ALL

oder du fügst die zeile

ncadmin ALL=(ALL)       NOPASSWD:ALL

ein. damit entfällt die frage nach dem password.

wenn du PermitRootLogin yes setzt solltest du dich mit winscp anmelden können. ich würde dir aber empfehlen auf ssh keypair umzustellen.

hast du die vm jetzt schon aufgesetzt und nc läuft?

1 Like

prüfe mal mit id ncadmin ob ncadmin zur gruppe admin gehört. wenn ja die zeile

Ich glaube ich habe keine Gruppe admin

root@nextcloud:~# cut -d: -f1 /etc/group | sort
adm
audio
backup
bin
cdrom
crontab
daemon
dialout
dip
disk
fax
floppy
games
gnats
input
irc
kmem
landscape
list
lp
lpadmin
lxd
mail
man
messagebus
mlocate
ncadmin
netdev
news
nogroup
operator
plugdev
postdrop
postfix
postgres
proxy
redis
root
sambashare
sasl
shadow
src
ssh
ssl-cert
staff
sudo
sys
syslog
systemd-journal
systemd-network
systemd-resolve
tape
tty
users
utmp
uucp
uuidd
veeam
video
voice
www-data
root@nextcloud:~#

ncadmin@nextcloud:~$ id
uid=1000(ncadmin) gid=1000(ncadmin) groups=1000(ncadmin),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lxd),113(lpadmin),114(sambashare)

ncadmin@nextcloud:~$ id root
uid=0(root) gid=0(root) groups=0(root)
ncadmin@nextcloud:~$

Zitat: wenn du PermitRootLogin yes setzt solltest du dich mit winscp anmelden können. ich würde dir aber empfehlen auf ssh keypair umzustellen.

Wenn alles funktioniert dann mache ich das gerne … das mit den 80iger, der war gut :wink: Du hast Recht

Zitat: hast du die vm jetzt schon aufgesetzt und nc läuft?

Ja, die VM ist aufgesetzt und läuft sehr gut, so habe ich keine weiteren Problem … alles bestens, bis auf das ich nicht mit WinSCP zugreifen kann und alles via Konsole lösen muss, Naja wer weiß, vielleicht hat das auch sein gutes…

Ich nutze generell die Konsole. Einfach einen Editor wie Vim ode Nano verwenden. Vielleicht gefällt dir ja auch mc ( https://wiki.ubuntuusers.de/Midnight_Commander ) als serverseitiger Dateimanager.

es gibt eine gruppe sudo. in /etc/sudoers sollte es auch einen entsprechenden eintrag geben.

So sieht meine sudoers aus:

#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives: 

Es gibt einen root User der zur Gruppe Admin gehört aber keinen ncadmin

Ich bin kein sudo-Experte. Aber es gibt evtl. weitere sudo-Konfigurationen in /etc/sudoers.d . Schau dort mal rein.

Die Zeile

%admin ALL=(ALL) ALL

ist dafür, dass alle Benutzer der Gruppe “admin” ohne Benutzerpasswort per “sudo” Befehle als root ausführen dürfen. Könntest “ncadmin” in die Gruppe “admin” eintragen. Dein WinSCP-Problem löst du damit aber nicht :wink:

Da liegt nichts drin…
Bild-504

Zum Midnight Commander … das ist eine gute Idee, diesen kenne ich aus meinem früheren Leben :wink: als NC … würde ich mit dem MC auch z.B. ins /var/www/nextcloud gelangen oder auf eine Cifs / NFS Freigabe, weiß Du das eventuell … oder probieren geht über Studieren :wink: ??

Wenn Du Dich via ssh einloggst, dann via “sudo -s” als root anmeldest kannst Du mit mc überall hinkommen.
Sobald Du die CIFS-Freigabe gemountet hast, kannst dann auch mit dem mc die Freigabe browsen.

1 Like

Beachte nur, dass du wenn du “root” bist Dateien auch entsprechend als “root” überall anlegst und evtl. die Rechte verbiegst. Unterhalb von /var/www/nextcloud musst du es dann evtl. dem Benutzer www-data wiedergeben:

chown -R www-data:www-data /var/wwwnextcloud

1 Like

-> %sudo ALL=(ALL:ALL) NOPASSWD:ALL

Danke an Alle! Komme erst ab Freitag Abend dazu und am WE, dann werde ich einiges ausprobieren und berichten. Bis dann Gruß…

I don’t understand German that good but a few pointers.

  1. To become root in Ubuntu you need to type: sudo -i (or sudo -s, but I prefer the -i option)
  2. You aren’t suppose to run the first setup as a pure root user.
  3. If the first setup script are run when you become root in Ubuntu (the VM), the first setup wasn’t sucessfull and you’ve done something wrong. The best thing here is to remount the VM and start over.
  4. I don’t think it’s a good idea to add a root user in Ubuntu as you always use sudo -i or plain sudo [cmd] to execute as root.

It seems the issue got solved, so thanks to everyone that helped!

1 Like

@enoch85 Faulpelz wants to connect to his vm as root to transfer files. And I think there is no sudo -i within winscp. That’s why he wants to change the sshd_conf to login as root.

1 Like