LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 07-08-2020, 08:58 AM   #16
deNiro
Member
 
Registered: Jun 2003
Location: Belgium
Distribution: Salix 14.2 and Slackware-current
Posts: 175

Rep: Reputation: Disabled

Quote:
Originally Posted by burning View Post
I tried downloading a pre-built package of SBo from https://sbopkg.org/downloads.php. Upon doing so I extracted the tarball and I think I made a mistake in doing so or I passed the wrong args so I deleted everything I just downloaded and tried downloading it again.

But upon attempting to download a 2nd time, it then prompted me where I wanted to save the file, which it didn't do last time. Then when I selected my /home/username/Downloads directory, it said I had invalid save permissions when I had them just moments ago. I never ran any chown commands in the process.

So Changing into my /home/username/ directory, I ran ls -l to list all the permissions and sure enough, all of them sans the Downloads directory were owned by my user, with /home/username/Downloads being, for some reason, owned by root user and group. Exiting from my user account and logging into root, I changed directories into /home/username/Downloads and managed to successfully change the permissions back to username and users group, but I'm still stumped as to how or why the perms just randomly changed after I downloaded/deleted the file I downloaded?

The only commands I ran were rm -rf on the files within /home/username/Downloads.
maybe you changed a few times with su - , and back to your regular user. And because of that, some dirs where made with root permissions, and when you changed back to your regular user, you could not save in that directory.
 
Old 07-09-2020, 10:36 AM   #17
burning
Member
 
Registered: Jan 2020
Location: Canada
Distribution: Slackware
Posts: 170

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by abga View Post
Read the "Changing To Another Shell" section at the bottom of this page:
http://linuxcommand.org/lc3_adv_othershells.php
Thanks. But I'm afraid I don't understand. The ~/.bashrc file supposedly only exists to deal with environment variables for an interactive Bash shell, not a login one; yet it's required for the making of permanent aliases?
I don't see why this is the case. The ~/.bashrc file only dealing with interactive shell configuration implies to me that it has no bearing on the overall login shell configuration for bash. But then if I want to make permanent aliases, I have to create a file named ~/.bashrc and have it include the alias there.

I just find it confusing that the ~/.bashrc file seems to be so integral to general system configuration yet doesn't exist until a user creates it manually. And after seeing some examples /bin/bash.bashrc files, They seem to deal with integral parts of a BASH login shell such as tab completion and the like. I don't have a bash.bashrc file on my computer so I am puzzled as to how/where my bash shell's actual configuration is actually handled. The only bash file I seem to have is /etc/bash_completion.d and ~/.bash_history

Last edited by burning; 07-09-2020 at 11:46 AM. Reason: edited for clarification
 
Old 07-09-2020, 12:04 PM   #18
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 7,238

Rep: Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930
~/.bashrc is for interactive non-login shells
~/.bash_profile is for interactive login shells

You can have one of the files source the other file if you want it to apply to both shells.

Neither of these files are created when you create a user (since only the home folder is created).

I've never bothered creating one. I change my konsole terminal to use a login shell for every instance and I make my changes in /etc/profile directly (since I'm the only user on the system). But if I were not the administrator and unable to to edit system conf files, I would add my changes to the ~/.bash_profile and continue to set everything to use a login shell.
 
2 members found this post helpful.
Old 07-09-2020, 04:21 PM   #19
abga
Senior Member
 
Registered: Jul 2017
Location: EU
Distribution: Slackware
Posts: 1,575

Rep: Reputation: 876Reputation: 876Reputation: 876Reputation: 876Reputation: 876Reputation: 876Reputation: 876
@burning

In addition to bassmadrigal's explanation, have a look at Slackware's docs:
https://docs.slackware.com/howtos:cl...initialisation
&
This old thread I just found:
https://www.linuxquestions.org/quest...ckware-233632/

Generic Info:
http://www.joshstaiger.org/archives/...rofile_vs.html
&
https://linux.die.net/man/1/bash
 
1 members found this post helpful.
Old 07-10-2020, 10:06 AM   #20
burning
Member
 
Registered: Jan 2020
Location: Canada
Distribution: Slackware
Posts: 170

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by abga View Post
@burning

In addition to bassmadrigal's explanation, have a look at Slackware's docs:
https://docs.slackware.com/howtos:cl...initialisation
&
This old thread I just found:
https://www.linuxquestions.org/quest...ckware-233632/

Generic Info:
http://www.joshstaiger.org/archives/...rofile_vs.html
&
https://linux.die.net/man/1/bash
Thanks
I read through the slackware docs and edited my ~/.bash_profile to read:
Code:
if [ -f ~/.bashrc ]; then
        .~/.bashrc
fi
and edited my ~/.bashrc to read:
Code:
. /etc/profile
but every time I login now, I'm met with two randomized quotes/messages that I get at the beginning of every session instead of the usual one. Any idea what went wrong?

Last edited by burning; 07-10-2020 at 10:06 AM. Reason: bash not nash
 
Old 07-10-2020, 10:32 AM   #21
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 7,238

Rep: Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930
Quote:
Originally Posted by burning View Post
and edited my ~/.bashrc to read:
Code:
. /etc/profile
but every time I login now, I'm met with two randomized quotes/messages that I get at the beginning of every session instead of the usual one. Any idea what went wrong?
When you use a login shell, bash will check for and try and source /etc/profile (which will include anything in /etc/profile.d/, ~/.profile, and ~/.bash_profile.

Adding the sourcing of your .bashrc to your ~/.bash_profile will then cause /etc/profile to be run twice. Just remove the reference to .bashrc in ~/.bash_profile and keep the . /etc/profile in your ~/.bashrc and all shells will have the same environment.
 
1 members found this post helpful.
Old 07-10-2020, 11:07 AM   #22
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,901

Rep: Reputation: Disabled
Fwiw this is all documented in the man page. See bash(1).

Quote:
INVOCATION
A login shell is one whose first character of argument zero is a -, or
one started with the --login option.

An interactive shell is one started without non-option arguments
(unless -s is specified) and without the -c option whose standard input
and error are both connected to terminals (as determined by isatty(3)),
or one started with the -i option. PS1 is set and $- includes i if
bash is interactive, allowing a shell script or a startup file to test
this state.

The following paragraphs describe how bash executes its startup files.
If any of the files exist but cannot be read, bash reports an error.
Tildes are expanded in filenames as described below under Tilde
Expansion in the EXPANSION section.

When bash is invoked as an interactive login shell, or as a non-
interactive shell with the --login option, it first reads and executes
commands from the file /etc/profile, if that file exists. After
reading that file, it looks for ~/.bash_profile, ~/.bash_login, and
~/.profile, in that order, and reads and executes commands from the
first one that exists and is readable. The --noprofile option may be
used when the shell is started to inhibit this behavior.

When an interactive login shell exits, or a non-interactive login shell
executes the exit builtin command, bash reads and executes commands
from the file ~/.bash_logout, if it exists.

When an interactive shell that is not a login shell is started, bash
reads and executes commands from ~/.bashrc, if that file exists. This
may be inhibited by using the --norc option. The --rcfile file option
will force bash to read and execute commands from file instead of
~/.bashrc.

When bash is started non-interactively, to run a shell script, for
example, it looks for the variable BASH_ENV in the environment, expands
its value if it appears there, and uses the expanded value as the name
of a file to read and execute. Bash behaves as if the following
command were executed:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
but the value of the PATH variable is not used to search for the
filename.

If bash is invoked with the name sh, it tries to mimic the startup
behavior of historical versions of sh as closely as possible, while
conforming to the POSIX standard as well. When invoked as an
interactive login shell, or a non-interactive shell with the --login
option, it first attempts to read and execute commands from
/etc/profile and ~/.profile, in that order. The --noprofile option may
be used to inhibit this behavior. When invoked as an interactive shell
with the name sh, bash looks for the variable ENV, expands its value if
it is defined, and uses the expanded value as the name of a file to
read and execute. Since a shell invoked as sh does not attempt to read
and execute commands from any other startup files, the --rcfile option
has no effect. A non-interactive shell invoked with the name sh does
not attempt to read any other startup files. When invoked as sh, bash
enters posix mode after the startup files are read.

When bash is started in posix mode, as with the --posix command line
option, it follows the POSIX standard for startup files. In this mode,
interactive shells expand the ENV variable and commands are read and
executed from the file whose name is the expanded value. No other
startup files are read.

Bash attempts to determine when it is being run with its standard input
connected to a network connection, as when executed by the remote shell
daemon, usually rshd, or the secure shell daemon sshd. If bash
determines it is being run in this fashion, it reads and executes
commands from ~/.bashrc, if that file exists and is readable. It will
not do this if invoked as sh. The --norc option may be used to inhibit
this behavior, and the --rcfile option may be used to force another
file to be read, but neither rshd nor sshd generally invoke the shell
with those options or allow them to be specified.

If the shell is started with the effective user (group) id not equal to
the real user (group) id, and the -p option is not supplied, no startup
files are read, shell functions are not inherited from the environment,
the SHELLOPTS, BASHOPTS, CDPATH, and GLOBIGNORE variables, if they
appear in the environment, are ignored, and the effective user id is
set to the real user id. If the -p option is supplied at invocation,
the startup behavior is the same, but the effective user id is not
reset.
 
Old 07-10-2020, 11:24 AM   #23
burning
Member
 
Registered: Jan 2020
Location: Canada
Distribution: Slackware
Posts: 170

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by bassmadrigal View Post
When you use a login shell, bash will check for and try and source /etc/profile (which will include anything in /etc/profile.d/, ~/.profile, and ~/.bash_profile.

Adding the sourcing of your .bashrc to your ~/.bash_profile will then cause /etc/profile to be run twice. Just remove the reference to .bashrc in ~/.bash_profile and keep the . /etc/profile in your ~/.bashrc and all shells will have the same environment.
Thanks, I thought I was supposed to do it the way I did it because of what it said [URL="https://docs.slackware.com/howtos:cli_manual:shells#login_shell_initialisation"here[/URL]
under the |/.bashrc vs |/.bash_profile header.
 
Old 07-10-2020, 11:47 AM   #24
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 7,238

Rep: Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930Reputation: 4930
Quote:
Originally Posted by burning View Post
Thanks, I thought I was supposed to do it the way I did it because of what it said [URL="https://docs.slackware.com/howtos:cli_manual:shells#login_shell_initialisation"here[/URL]
under the |/.bashrc vs |/.bash_profile header.
If you are adding customizations to ~/.bashrc, then it might be worth having ~/.bash_profile source ~/.bashrc. But if you're just having non-login shells source /etc/profile, then there's no need to tell login shells to source ~/.bashrc.
 
Old 07-11-2020, 06:42 AM   #25
igadoter
Senior Member
 
Registered: Sep 2006
Location: wroclaw, poland
Distribution: many, primary Slackware
Posts: 1,557
Blog Entries: 1

Rep: Reputation: Disabled
Look for rm uitility
Code:
$ which rm
verify you own privileges
Code:
$ id
Do the same things as you did but as different user. So create new account. Reinstall rm and other utilities using distribution packages. How did you download? Through web browser? There is possibility under Linux to run application as different user - I don't quite well recall now. Sticky bit? Maybe I am wrong in this. But it means that you start app but system sees this as being started by someone else. Say you start app and system sees that was started by root - with of course all privileges - and every created file is owned by root.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: Big mistake, Google. Big mistake: Chrome OS to be 'folded into Android' LXer Syndicated Linux News 0 10-29-2015 11:33 PM
LXer: Freespire: Great Idea? Awful Idea? LXer Syndicated Linux News 1 05-04-2006 06:10 AM
mp3 jukebox idea (different idea then I have seen) supradrvr Linux - Software 8 03-27-2006 07:58 PM
stupd mistake? changed the source aznboi SUSE / openSUSE 6 03-21-2006 05:04 PM
Stupid mistake - changed root shell to /bin/false Kholnuu Linux - General 8 01-04-2005 03:48 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 04:41 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration